Index: dm/DMGpuSupport.h |
diff --git a/dm/DMGpuSupport.h b/dm/DMGpuSupport.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..46896b43217f91b623a494b55f437dfa510d03bf |
--- /dev/null |
+++ b/dm/DMGpuSupport.h |
@@ -0,0 +1,60 @@ |
+#ifndef DMGpuSupport_DEFINED |
+#define DMGpuSupport_DEFINED |
+ |
+// Provides Ganesh to DM, |
+// or if it's not available, fakes it enough so most code doesn't have to know that. |
+ |
+#include "SkSurface.h" |
+ |
+#if SK_SUPPORT_GPU |
+ |
+// Ganesh is available. Yippee! |
+ |
+# include "GrContext.h" |
+# include "GrContextFactory.h" |
+ |
+namespace DM { |
+ |
+static const bool kGPUDisabled = false; |
+ |
+static inline SkSurface* NewGpuSurface(GrContextFactory* grFactory, |
+ GrContextFactory::GLContextType type, |
+ SkImageInfo info, |
+ int samples) { |
+ return SkSurface::NewRenderTarget(grFactory->get(type), info, samples); |
+} |
+ |
+} // namespace DM |
+ |
+#else// !SK_SUPPORT_GPU |
+ |
+// Ganesh is not available. Fake it. |
+ |
+class GrContextFactory { |
+public: |
+ typedef int GLContextType; |
+ |
+ static const GLContextType kANGLE_GLContextType = 0, |
+ kDebug_GLContextType = 0, |
+ kMESA_GLContextType = 0, |
+ kNVPR_GLContextType = 0, |
+ kNative_GLContextType = 0, |
+ kNull_GLContextType = 0; |
+}; |
+ |
+namespace DM { |
+ |
+static const bool kGPUDisabled = true; |
+ |
+static inline SkSurface* NewGpuSurface(GrContextFactory*, |
+ GrContextFactory::GLContextType, |
+ SkImageInfo, |
+ int) { |
+ return NULL; |
+} |
+ |
+} // namespace DM |
+ |
+#endif//SK_SUPPORT_GPU |
+ |
+#endif//DMGpuSupport_DEFINED |