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 
Create()22     static SkMesaGLContext* Create() {
23         SkMesaGLContext* ctx = new SkMesaGLContext;
24         if (!ctx->isValid()) {
25             delete ctx;
26             return nullptr;
27         }
28         return ctx;
29     }
30 
31 private:
32     SkMesaGLContext();
33     void destroyGLContext();
34 
35     void onPlatformMakeCurrent() const override;
36     void onPlatformSwapBuffers() const override;
37     GrGLFuncPtr onPlatformGetProcAddress(const char*) const override;
38 
39     Context fContext;
40     GrGLubyte *fImage;
41 };
42 
43 #endif
44 
45 #endif
46