aboutsummaryrefslogtreecommitdiffstats
path: root/include/gpu/gl/SkMesaGLContext.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/gpu/gl/SkMesaGLContext.h')
-rw-r--r--include/gpu/gl/SkMesaGLContext.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/include/gpu/gl/SkMesaGLContext.h b/include/gpu/gl/SkMesaGLContext.h
new file mode 100644
index 0000000..5c329ff
--- /dev/null
+++ b/include/gpu/gl/SkMesaGLContext.h
@@ -0,0 +1,50 @@
+
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+#ifndef SkMesaGLContext_DEFINED
+#define SkMesaGLContext_DEFINED
+
+#include "SkGLContext.h"
+
+#if SK_MESA
+
+class SkMesaGLContext : public SkGLContext {
+private:
+ typedef intptr_t Context;
+
+public:
+ SkMesaGLContext();
+
+ virtual ~SkMesaGLContext();
+
+ virtual void makeCurrent() const SK_OVERRIDE;
+
+ class AutoContextRestore {
+ public:
+ AutoContextRestore();
+ ~AutoContextRestore();
+
+ private:
+ Context fOldContext;
+ GLint fOldWidth;
+ GLint fOldHeight;
+ GLint fOldFormat;
+ void* fOldImage;
+ };
+
+protected:
+ virtual const GrGLInterface* createGLContext() SK_OVERRIDE;
+ virtual void destroyGLContext() SK_OVERRIDE;
+
+private:
+ Context fContext;
+ GrGLubyte *fImage;
+};
+
+#endif
+
+#endif