1 #ifndef DMGpuSupport_DEFINED 2 #define DMGpuSupport_DEFINED 3 4 // Provides Ganesh to DM, 5 // or if it's not available, fakes it enough so most code doesn't have to know that. 6 7 #include "SkSurface.h" 8 9 #if SK_SUPPORT_GPU 10 11 // Ganesh is available. Yippee! 12 13 # include "GrContext.h" 14 # include "GrContextFactory.h" 15 16 namespace DM { 17 18 static const bool kGPUDisabled = false; 19 20 static inline SkSurface* NewGpuSurface(GrContextFactory* grFactory, 21 GrContextFactory::GLContextType type, 22 GrGLStandard gpuAPI, 23 SkImageInfo info, 24 int samples) { 25 return SkSurface::NewRenderTarget(grFactory->get(type, gpuAPI), info, samples, NULL); 26 } 27 28 } // namespace DM 29 30 #else// !SK_SUPPORT_GPU 31 32 // Ganesh is not available. Fake it. 33 34 enum GrGLStandard { 35 kNone_GrGLStandard, 36 kGL_GrGLStandard, 37 kGLES_GrGLStandard 38 }; 39 40 class GrContextFactory { 41 public: 42 typedef int GLContextType; 43 44 static const GLContextType kANGLE_GLContextType = 0, 45 kDebug_GLContextType = 0, 46 kMESA_GLContextType = 0, 47 kNVPR_GLContextType = 0, 48 kNative_GLContextType = 0, 49 kNull_GLContextType = 0; 50 void destroyContexts() {} 51 52 void abandonContexts() {} 53 }; 54 55 namespace DM { 56 57 static const bool kGPUDisabled = true; 58 59 static inline SkSurface* NewGpuSurface(GrContextFactory*, 60 GrContextFactory::GLContextType, 61 GrGLStandard, 62 SkImageInfo, 63 int) { 64 return NULL; 65 } 66 67 } // namespace DM 68 69 #endif//SK_SUPPORT_GPU 70 71 #endif//DMGpuSupport_DEFINED 72