Home | History | Annotate | Download | only in gl
      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