1 
2 /*
3  * Copyright 2011 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 SkMesaGLContext_DEFINED
9 #define SkMesaGLContext_DEFINED
10 
11 #include "gl/SkGLContext.h"
12 
13 #if SK_MESA
14 
15 class SkMesaGLContext : public SkGLContext {
16 private:
17     typedef intptr_t Context;
18 
19 public:
20     ~SkMesaGLContext() override;
21     void makeCurrent() const override;
22     void swapBuffers() const override;
23 
Create(GrGLStandard forcedGpuAPI)24     static SkMesaGLContext* Create(GrGLStandard forcedGpuAPI) {
25         if (kGLES_GrGLStandard == forcedGpuAPI) {
26             return NULL;
27         }
28         SkMesaGLContext* ctx = SkNEW(SkMesaGLContext);
29         if (!ctx->isValid()) {
30             SkDELETE(ctx);
31             return NULL;
32         }
33         return ctx;
34     }
35 
36 private:
37     SkMesaGLContext();
38     void destroyGLContext();
39 
40     Context fContext;
41     GrGLubyte *fImage;
42 };
43 
44 #endif
45 
46 #endif
47