Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Unified Diff: src/gpu/GrContextFactory.h

Issue 723183002: Cleanup GrContextFactory and make it's subclasses private (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: test only Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include/gpu/gl/SkNullGLContext.h ('k') | src/gpu/GrContextFactory.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
« no previous file with comments | « include/gpu/gl/SkNullGLContext.h ('k') | src/gpu/GrContextFactory.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698