aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrContextFactory.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/GrContextFactory.h')
-rw-r--r--src/gpu/GrContextFactory.h145
1 files changed, 0 insertions, 145 deletions
diff --git a/src/gpu/GrContextFactory.h b/src/gpu/GrContextFactory.h
deleted file mode 100644
index 1bc1e21fbb..0000000000
--- a/src/gpu/GrContextFactory.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright 2012 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef GrContextFactory_DEFINED
-#define GrContextFactory_DEFINED
-
-#include "GrContext.h"
-#include "GrContextOptions.h"
-
-#include "gl/SkGLContext.h"
-#include "SkTArray.h"
-
-/**
- * This is a simple class that is useful in test apps that use different
- * GrContexts backed by different types of GL contexts. It manages creating the
- * GL context and a GrContext that uses it. The GL/Gr contexts persist until the
- * factory is destroyed (though the caller can always grab a ref on the returned
- * Gr and GL contexts to make them outlive the factory).
- */
-class GrContextFactory : SkNoncopyable {
-public:
- enum GLContextType {
- kNative_GLContextType, //! OpenGL or OpenGL ES context.
- kGL_GLContextType, //! OpenGL context.
- kGLES_GLContextType, //! OpenGL ES context.
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- kANGLE_GLContextType, //! ANGLE on DirectX OpenGL ES context.
-#endif
- kANGLE_GL_GLContextType, //! ANGLE on OpenGL OpenGL ES context.
-#endif
-#if SK_COMMAND_BUFFER
- kCommandBuffer_GLContextType, //! Chromium command buffer OpenGL ES context.
-#endif
-#if SK_MESA
- kMESA_GLContextType, //! MESA OpenGL context
-#endif
- kNull_GLContextType, //! Non-rendering OpenGL mock context.
- kDebug_GLContextType, //! Non-rendering, state verifying OpenGL context.
- kLastGLContextType = kDebug_GLContextType
- };
-
- static const int kGLContextTypeCnt = kLastGLContextType + 1;
-
- /**
- * Options for GL context creation. For historical and testing reasons the options will default
- * to not using GL_NV_path_rendering extension even when the driver supports it.
- */
- enum GLContextOptions {
- kNone_GLContextOptions = 0,
- kEnableNVPR_GLContextOptions = 0x1,
- kRequireSRGBSupport_GLContextOptions = 0x2,
- };
-
- static bool IsRenderingGLContext(GLContextType type) {
- switch (type) {
- case kNull_GLContextType:
- case kDebug_GLContextType:
- return false;
- default:
- return true;
- }
- }
-
- static const char* GLContextTypeName(GLContextType type) {
- switch (type) {
- case kNative_GLContextType:
- return "native";
- case kGL_GLContextType:
- return "gl";
- case kGLES_GLContextType:
- return "gles";
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- case kANGLE_GLContextType:
- return "angle";
-#endif
- case kANGLE_GL_GLContextType:
- return "angle-gl";
-#endif
-#if SK_COMMAND_BUFFER
- case kCommandBuffer_GLContextType:
- return "commandbuffer";
-#endif
-#if SK_MESA
- case kMESA_GLContextType:
- return "mesa";
-#endif
- case kNull_GLContextType:
- return "null";
- case kDebug_GLContextType:
- return "debug";
- default:
- SkFAIL("Unknown GL Context type.");
- }
- }
-
- explicit GrContextFactory(const GrContextOptions& opts);
- GrContextFactory();
-
- ~GrContextFactory();
-
- void destroyContexts();
- void abandonContexts();
-
- struct ContextInfo {
- ContextInfo()
- : fGrContext(nullptr), fGLContext(nullptr) { }
- ContextInfo(GrContext* grContext, SkGLContext* glContext)
- : fGrContext(grContext), fGLContext(glContext) { }
- GrContext* fGrContext;
- SkGLContext* fGLContext; //! Valid until the factory destroys it via abandonContexts() or
- //! destroyContexts().
- };
-
- /**
- * Get a context initialized with a type of GL context. It also makes the GL context current.
- */
- ContextInfo getContextInfo(GLContextType type,
- GLContextOptions options = kNone_GLContextOptions);
- /**
- * Get a GrContext initialized with a type of GL context. It also makes the GL context current.
- */
- GrContext* get(GLContextType type,
- GLContextOptions options = kNone_GLContextOptions) {
- return this->getContextInfo(type, options).fGrContext;
- }
- const GrContextOptions& getGlobalOptions() const { return fGlobalOptions; }
-
-private:
- struct Context {
- GLContextType fType;
- GLContextOptions fOptions;
- SkGLContext* fGLContext;
- GrContext* fGrContext;
- };
- SkTArray<Context, true> fContexts;
- const GrContextOptions fGlobalOptions;
-};
-
-#endif