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