blob: 90b0ea55cff70c0615f4746626e325a723e2f8d3 [file] [log] [blame]
commit-bot@chromium.org787227d2014-03-26 21:26:15 +00001#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,
kkinnunen80549fc2014-06-30 06:36:31 -070022 GrGLStandard gpuAPI,
commit-bot@chromium.org787227d2014-03-26 21:26:15 +000023 SkImageInfo info,
24 int samples) {
reed4a8126e2014-09-22 07:29:03 -070025 return SkSurface::NewRenderTarget(grFactory->get(type, gpuAPI), info, samples, NULL);
commit-bot@chromium.org787227d2014-03-26 21:26:15 +000026}
27
28} // namespace DM
29
30#else// !SK_SUPPORT_GPU
31
32// Ganesh is not available. Fake it.
33
kkinnunen80549fc2014-06-30 06:36:31 -070034enum GrGLStandard {
35 kNone_GrGLStandard,
36 kGL_GrGLStandard,
37 kGLES_GrGLStandard
38};
mtklein2ecf86e2014-11-06 08:06:39 -080039static const int kGrGLStandardCnt = 3;
kkinnunen80549fc2014-06-30 06:36:31 -070040
commit-bot@chromium.org787227d2014-03-26 21:26:15 +000041class GrContextFactory {
42public:
43 typedef int GLContextType;
44
45 static const GLContextType kANGLE_GLContextType = 0,
46 kDebug_GLContextType = 0,
47 kMESA_GLContextType = 0,
48 kNVPR_GLContextType = 0,
49 kNative_GLContextType = 0,
50 kNull_GLContextType = 0;
mtklein2ecf86e2014-11-06 08:06:39 -080051 static const int kGLContextTypeCnt = 1;
mtklein1e319f72014-07-15 08:27:06 -070052 void destroyContexts() {}
bsalomon2354f842014-07-28 13:48:36 -070053
54 void abandonContexts() {}
commit-bot@chromium.org787227d2014-03-26 21:26:15 +000055};
56
57namespace DM {
58
59static const bool kGPUDisabled = true;
60
61static inline SkSurface* NewGpuSurface(GrContextFactory*,
62 GrContextFactory::GLContextType,
kkinnunen80549fc2014-06-30 06:36:31 -070063 GrGLStandard,
commit-bot@chromium.org787227d2014-03-26 21:26:15 +000064 SkImageInfo,
65 int) {
66 return NULL;
67}
68
69} // namespace DM
70
71#endif//SK_SUPPORT_GPU
72
73#endif//DMGpuSupport_DEFINED