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 15class SkMesaGLContext : public SkGLContextHelper { 16private: 17 typedef intptr_t Context; 18 19public: 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 40protected: 41 virtual const GrGLInterface* createGLContext(GrGLStandard forcedGpuAPI) SK_OVERRIDE; 42 virtual void destroyGLContext() SK_OVERRIDE; 43 44private: 45 Context fContext; 46 GrGLubyte *fImage; 47}; 48 49#endif 50 51#endif 52