SkANGLEGLContext.h revision 096defe64d408e54474fe19f418c95bf1a554fc7
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
26    class AutoContextRestore {
27    public:
28        AutoContextRestore();
29        ~AutoContextRestore();
30
31    private:
32        EGLContext fOldEGLContext;
33        EGLDisplay fOldDisplay;
34        EGLSurface fOldSurface;
35    };
36
37protected:
38    virtual const GrGLInterface* createGLContext() SK_OVERRIDE;
39    virtual void destroyGLContext() SK_OVERRIDE;
40
41private:
42    EGLContext fContext;
43    EGLDisplay fDisplay;
44    EGLSurface fSurface;
45};
46
47#endif
48
49#endif
50