50 lines
956 B
C
50 lines
956 B
C
|
|
||
|
/*
|
||
|
* Copyright 2012 Google Inc.
|
||
|
*
|
||
|
* Use of this source code is governed by a BSD-style license that can be
|
||
|
* found in the LICENSE file.
|
||
|
*/
|
||
|
#ifndef SkANGLEGLContext_DEFINED
|
||
|
#define SkANGLEGLContext_DEFINED
|
||
|
|
||
|
#if SK_ANGLE
|
||
|
|
||
|
#include "SkGLContext.h"
|
||
|
|
||
|
#include <GLES2/gl2.h>
|
||
|
#include <EGL/egl.h>
|
||
|
|
||
|
class SkANGLEGLContext : public SkGLContext {
|
||
|
public:
|
||
|
SkANGLEGLContext();
|
||
|
|
||
|
virtual ~SkANGLEGLContext();
|
||
|
|
||
|
virtual void makeCurrent() const SK_OVERRIDE;
|
||
|
|
||
|
class AutoContextRestore {
|
||
|
public:
|
||
|
AutoContextRestore();
|
||
|
~AutoContextRestore();
|
||
|
|
||
|
private:
|
||
|
angle::EGLContext fOldEGLContext;
|
||
|
angle::EGLDisplay fOldDisplay;
|
||
|
angle::EGLSurface fOldSurface;
|
||
|
};
|
||
|
|
||
|
protected:
|
||
|
virtual const GrGLInterface* createGLContext() SK_OVERRIDE;
|
||
|
virtual void destroyGLContext() SK_OVERRIDE;
|
||
|
|
||
|
private:
|
||
|
angle::EGLContext fContext;
|
||
|
angle::EGLDisplay fDisplay;
|
||
|
angle::EGLSurface fSurface;
|
||
|
};
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#endif
|