| Index: src/gpu/GrContextFactory.h
|
| diff --git a/include/gpu/GrContextFactory.h b/src/gpu/GrContextFactory.h
|
| similarity index 62%
|
| rename from include/gpu/GrContextFactory.h
|
| rename to src/gpu/GrContextFactory.h
|
| index 143ca31aad6c0f3f62c4704ec71a48a1e99a00a6..353e3d9c96ada7ec5dff59d7487008b63219187c 100644
|
| --- a/include/gpu/GrContextFactory.h
|
| +++ b/src/gpu/GrContextFactory.h
|
| @@ -8,17 +8,9 @@
|
| #ifndef GrContextFactory_DEFINED
|
| #define GrContextFactory_DEFINED
|
|
|
| -#if SK_ANGLE
|
| - #include "gl/SkANGLEGLContext.h"
|
| -#endif
|
| -#include "gl/SkDebugGLContext.h"
|
| -#if SK_MESA
|
| - #include "gl/SkMesaGLContext.h"
|
| -#endif
|
| -#include "gl/SkGLContext.h"
|
| -#include "gl/SkNullGLContext.h"
|
| -
|
| #include "GrContext.h"
|
| +
|
| +#include "gl/SkGLContext.h"
|
| #include "SkTArray.h"
|
|
|
| /**
|
| @@ -119,74 +111,8 @@ public:
|
| /**
|
| * Get a GrContext initialized with a type of GL context. It also makes the GL context current.
|
| */
|
| - GrContext* get(GLContextType type, GrGLStandard forcedGpuAPI = kNone_GrGLStandard) {
|
| - for (int i = 0; i < fContexts.count(); ++i) {
|
| - if (forcedGpuAPI != kNone_GrGLStandard &&
|
| - forcedGpuAPI != fContexts[i].fGLContext->gl()->fStandard)
|
| - continue;
|
| + GrContext* get(GLContextType type, GrGLStandard forcedGpuAPI = kNone_GrGLStandard);
|
|
|
| - if (fContexts[i].fType == type) {
|
| - fContexts[i].fGLContext->makeCurrent();
|
| - return fContexts[i].fGrContext;
|
| - }
|
| - }
|
| - SkAutoTUnref<SkGLContext> glCtx;
|
| - SkAutoTUnref<GrContext> grCtx;
|
| - switch (type) {
|
| - case kNVPR_GLContextType: // fallthru
|
| - case kNative_GLContextType:
|
| - glCtx.reset(SkCreatePlatformGLContext(forcedGpuAPI));
|
| - break;
|
| -#ifdef SK_ANGLE
|
| - case kANGLE_GLContextType:
|
| - glCtx.reset(SkANGLEGLContext::Create(forcedGpuAPI));
|
| - break;
|
| -#endif
|
| -#ifdef SK_MESA
|
| - case kMESA_GLContextType:
|
| - glCtx.reset(SkMesaGLContext::Create(forcedGpuAPI));
|
| - break;
|
| -#endif
|
| - case kNull_GLContextType:
|
| - glCtx.reset(SkNullGLContext::Create(forcedGpuAPI));
|
| - break;
|
| - case kDebug_GLContextType:
|
| - glCtx.reset(SkDebugGLContext::Create(forcedGpuAPI));
|
| - break;
|
| - }
|
| - 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->gl()));
|
| - if (kNVPR_GLContextType == type) {
|
| - if (!glInterface->hasExtension("GL_NV_path_rendering")) {
|
| - return NULL;
|
| - }
|
| - } else {
|
| - glInterface.reset(GrGLInterfaceRemoveNVPR(glInterface));
|
| - if (!glInterface) {
|
| - return NULL;
|
| - }
|
| - }
|
| -
|
| - glCtx->makeCurrent();
|
| - GrBackendContext p3dctx = reinterpret_cast<GrBackendContext>(glInterface.get());
|
| - grCtx.reset(GrContext::Create(kOpenGL_GrBackend, p3dctx, &fGlobalOptions));
|
| - if (!grCtx.get()) {
|
| - return NULL;
|
| - }
|
| - GPUContext& ctx = fContexts.push_back();
|
| - ctx.fGLContext = glCtx.get();
|
| - ctx.fGLContext->ref();
|
| - ctx.fGrContext = grCtx.get();
|
| - ctx.fGrContext->ref();
|
| - ctx.fType = type;
|
| - return ctx.fGrContext;
|
| - }
|
|
|
| // Returns the GLContext of the given type. If it has not been created yet,
|
| // NULL is returned instead.
|
|
|