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
18class SkANGLEGLContext : public SkGLContextHelper {
19public:
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
38protected:
39    virtual const GrGLInterface* createGLContext() SK_OVERRIDE;
40    virtual void destroyGLContext() SK_OVERRIDE;
41
42private:
43    EGLContext fContext;
44    EGLDisplay fDisplay;
45    EGLSurface fSurface;
46};
47
48#endif
49
50#endif
51