Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / dm / DMGpuSupport.h
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                                        GrGLStandard gpuAPI,
23                                        SkImageInfo info,
24                                        int samples) {
25     return SkSurface::NewRenderTarget(grFactory->get(type, gpuAPI), info, samples);
26 }
27
28 }  // namespace DM
29
30 #else// !SK_SUPPORT_GPU
31
32 // Ganesh is not available.  Fake it.
33
34 enum GrGLStandard {
35     kNone_GrGLStandard,
36     kGL_GrGLStandard,
37     kGLES_GrGLStandard
38 };
39
40 class GrContextFactory {
41 public:
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
55 namespace DM {
56
57 static const bool kGPUDisabled = true;
58
59 static 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