#if SK_MESA
#include "gl/SkMesaGLContext.h"
#endif
-#include "gl/SkNativeGLContext.h"
+#include "gl/SkGLContext.h"
#include "gl/SkNullGLContext.h"
#include "GrContext.h"
return fContexts[i].fGrContext;
}
}
- SkAutoTUnref<SkGLContextHelper> glCtx;
+ SkAutoTUnref<SkGLContext> glCtx;
SkAutoTUnref<GrContext> grCtx;
switch (type) {
case kNVPR_GLContextType: // fallthru
case kNative_GLContextType:
- glCtx.reset(SkNEW(SkNativeGLContext));
+ glCtx.reset(SkCreatePlatformGLContext(forcedGpuAPI));
break;
#ifdef SK_ANGLE
case kANGLE_GLContextType:
- glCtx.reset(SkNEW(SkANGLEGLContext));
+ glCtx.reset(SkANGLEGLContext::Create(forcedGpuAPI));
break;
#endif
#ifdef SK_MESA
case kMESA_GLContextType:
- glCtx.reset(SkNEW(SkMesaGLContext));
+ glCtx.reset(SkMesaGLContext::Create(forcedGpuAPI));
break;
#endif
case kNull_GLContextType:
- glCtx.reset(SkNEW(SkNullGLContext));
+ glCtx.reset(SkNullGLContext::Create(forcedGpuAPI));
break;
case kDebug_GLContextType:
- glCtx.reset(SkNEW(SkDebugGLContext));
+ glCtx.reset(SkDebugGLContext::Create(forcedGpuAPI));
break;
}
- static const int kBogusSize = 1;
- if (!glCtx.get()) {
- return NULL;
- }
- if (!glCtx.get()->init(forcedGpuAPI, kBogusSize, kBogusSize)) {
+ if (NULL == glCtx.get()) {
return NULL;
}
+ SkASSERT(glCtx->isValid());
+
// Ensure NVPR is available for the NVPR type and block it from other types.
- SkAutoTUnref<const GrGLInterface> glInterface(SkRef(glCtx.get()->gl()));
+ SkAutoTUnref<const GrGLInterface> glInterface(SkRef(glCtx->gl()));
if (kNVPR_GLContextType == type) {
if (!glInterface->hasExtension("GL_NV_path_rendering")) {
return NULL;
// Returns the GLContext of the given type. If it has not been created yet,
// NULL is returned instead.
- SkGLContextHelper* getGLContext(GLContextType type) {
+ SkGLContext* getGLContext(GLContextType type) {
for (int i = 0; i < fContexts.count(); ++i) {
if (fContexts[i].fType == type) {
return fContexts[i].fGLContext;
private:
struct GPUContext {
GLContextType fType;
- SkGLContextHelper* fGLContext;
+ SkGLContext* fGLContext;
GrContext* fGrContext;
};
SkTArray<GPUContext, true> fContexts;