blob: 46896b43217f91b623a494b55f437dfa510d03bf [file] [log] [blame]
#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