diff options
Diffstat (limited to 'src/gpu/GrContextFactory.h')
-rw-r--r-- | src/gpu/GrContextFactory.h | 145 |
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 |