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 SkImageInfo info, 23 int samples) { 24 return SkSurface::NewRenderTarget(grFactory->get(type), info, samples); 25} 26 27} // namespace DM 28 29#else// !SK_SUPPORT_GPU 30 31// Ganesh is not available. Fake it. 32 33class GrContextFactory { 34public: 35 typedef int GLContextType; 36 37 static const GLContextType kANGLE_GLContextType = 0, 38 kDebug_GLContextType = 0, 39 kMESA_GLContextType = 0, 40 kNVPR_GLContextType = 0, 41 kNative_GLContextType = 0, 42 kNull_GLContextType = 0; 43}; 44 45namespace DM { 46 47static const bool kGPUDisabled = true; 48 49static inline SkSurface* NewGpuSurface(GrContextFactory*, 50 GrContextFactory::GLContextType, 51 SkImageInfo, 52 int) { 53 return NULL; 54} 55 56} // namespace DM 57 58#endif//SK_SUPPORT_GPU 59 60#endif//DMGpuSupport_DEFINED 61