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 "SkGLContext.h"
     12 
     13 #if SK_MESA
     14 
     15 class SkMesaGLContext : public SkGLContext {
     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 
     26     class AutoContextRestore {
     27     public:
     28         AutoContextRestore();
     29         ~AutoContextRestore();
     30 
     31     private:
     32         Context fOldContext;
     33         GLint   fOldWidth;
     34         GLint   fOldHeight;
     35         GLint   fOldFormat;
     36         void*   fOldImage;
     37     };
     38 
     39 protected:
     40     virtual const GrGLInterface* createGLContext() SK_OVERRIDE;
     41     virtual void destroyGLContext() SK_OVERRIDE;
     42 
     43 private:
     44     Context fContext;
     45     GrGLubyte *fImage;
     46 };
     47 
     48 #endif
     49 
     50 #endif
     51