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 "SkGLContextHelper.h" 12 13 #if SK_MESA 14 15 class SkMesaGLContext : public SkGLContextHelper { 16 private: 17 typedef intptr_t Context; 18 19 public: 20 SkMesaGLContext(); 21 22 virtual ~SkMesaGLContext(); 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 Context fOldContext; 34 GrGLint fOldWidth; 35 GrGLint fOldHeight; 36 GrGLint fOldFormat; 37 void* fOldImage; 38 }; 39 40 protected: 41 virtual const GrGLInterface* createGLContext() SK_OVERRIDE; 42 virtual void destroyGLContext() SK_OVERRIDE; 43 44 private: 45 Context fContext; 46 GrGLubyte *fImage; 47 }; 48 49 #endif 50 51 #endif 52