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 "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(); 21 22 virtual ~SkMesaGLContext(); 23 24 virtual void makeCurrent() const SK_OVERRIDE; 25 26 class AutoContextRestore { 27 public: 28 AutoContextRestore(); 29 ~AutoContextRestore(); 30 31 private: 32 Context fOldContext; 33 GrGLint fOldWidth; 34 GrGLint fOldHeight; 35 GrGLint fOldFormat; 36 void* fOldImage; 37 }; 38 39 protected: 40 virtual const GrGLInterface* createGLContext() SK_OVERRIDE; 41 virtual void destroyGLContext() SK_OVERRIDE; 42 43 private: 44 Context fContext; 45 GrGLubyte *fImage; 46 }; 47 48 #endif 49 50 #endif 51