Home | History | Annotate | Download | only in gl
      1 
      2 /*
      3  * Copyright 2012 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 SkANGLEGLContext_DEFINED
      9 #define SkANGLEGLContext_DEFINED
     10 
     11 #if SK_ANGLE
     12 
     13 #include "SkGLContextHelper.h"
     14 
     15 #include <GLES2/gl2.h>
     16 #include <EGL/egl.h>
     17 
     18 class SkANGLEGLContext : public SkGLContextHelper {
     19 public:
     20     SkANGLEGLContext();
     21 
     22     virtual ~SkANGLEGLContext();
     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         EGLContext fOldEGLContext;
     34         EGLDisplay fOldDisplay;
     35         EGLSurface fOldSurface;
     36     };
     37 
     38 protected:
     39     virtual const GrGLInterface* createGLContext(
     40         GrGLStandard forcedGpuAPI) SK_OVERRIDE;
     41     virtual void destroyGLContext() SK_OVERRIDE;
     42 
     43 private:
     44     EGLContext fContext;
     45     EGLDisplay fDisplay;
     46     EGLSurface fSurface;
     47 };
     48 
     49 #endif
     50 
     51 #endif
     52