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 16namespace DM { 17 18static const bool kGPUDisabled = false; 19 20static 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 34enum GrGLStandard { 35 kNone_GrGLStandard, 36 kGL_GrGLStandard, 37 kGLES_GrGLStandard 38}; 39 40class GrContextFactory { 41public: 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 55namespace DM { 56 57static const bool kGPUDisabled = true; 58 59static 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