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() SK_OVERRIDE;
     40     virtual void destroyGLContext() SK_OVERRIDE;
     41 
     42 private:
     43     EGLContext fContext;
     44     EGLDisplay fDisplay;
     45     EGLSurface fSurface;
     46 };
     47 
     48 #endif
     49 
     50 #endif
     51