• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 /*
3  * Copyright 2011 Google Inc.
4  *
5  * Use of this source code is governed by a BSD-style license that can be
6  * found in the LICENSE file.
7  */
8 #ifndef SkMesaGLContext_DEFINED
9 #define SkMesaGLContext_DEFINED
10 
11 #include "SkGLContextHelper.h"
12 
13 #if SK_MESA
14 
15 class SkMesaGLContext : public SkGLContextHelper {
16 private:
17     typedef intptr_t Context;
18 
19 public:
20     SkMesaGLContext();
21 
22     virtual ~SkMesaGLContext();
23 
24     virtual void makeCurrent() const SK_OVERRIDE;
25     virtual void swapBuffers() const SK_OVERRIDE;
26 
27     class AutoContextRestore {
28     public:
29         AutoContextRestore();
30         ~AutoContextRestore();
31 
32     private:
33         Context fOldContext;
34         GrGLint fOldWidth;
35         GrGLint fOldHeight;
36         GrGLint fOldFormat;
37         void*   fOldImage;
38     };
39 
40 protected:
41     virtual const GrGLInterface* createGLContext() SK_OVERRIDE;
42     virtual void destroyGLContext() SK_OVERRIDE;
43 
44 private:
45     Context fContext;
46     GrGLubyte *fImage;
47 };
48 
49 #endif
50 
51 #endif
52