Home | History | Annotate | Download | only in dm
      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                                        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 
     33 class GrContextFactory {
     34 public:
     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 
     45 namespace DM {
     46 
     47 static const bool kGPUDisabled = true;
     48 
     49 static 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