| Index: src/gpu/GrContextFactory.h
|
| diff --git a/src/gpu/GrContextFactory.h b/src/gpu/GrContextFactory.h
|
| index c837e74a25b29c36ee2031ed97686d089b87d893..50978138174a22c22b68f45727b1e32a96aab8bf 100644
|
| --- a/src/gpu/GrContextFactory.h
|
| +++ b/src/gpu/GrContextFactory.h
|
| @@ -23,35 +23,34 @@
|
| */
|
| class GrContextFactory : SkNoncopyable {
|
| public:
|
| - /**
|
| - * Types of GL contexts supported. For historical and testing reasons the native GrContext will
|
| - * not use "GL_NV_path_rendering" even when the driver supports it. There is a separate context
|
| - * type that does not remove NVPR support and which will fail when the driver does not support
|
| - * the extension.
|
| - */
|
| enum GLContextType {
|
| - kNative_GLContextType,
|
| + kNative_GLContextType,
|
| #if SK_ANGLE
|
| - kANGLE_GLContextType,
|
| - kANGLE_GL_GLContextType,
|
| + kANGLE_GLContextType,
|
| + kANGLE_GL_GLContextType,
|
| #endif
|
| #if SK_COMMAND_BUFFER
|
| - kCommandBuffer_GLContextType,
|
| + kCommandBuffer_GLContextType,
|
| #endif
|
| #if SK_MESA
|
| - kMESA_GLContextType,
|
| + kMESA_GLContextType,
|
| #endif
|
| - /** Similar to kNative but does not filter NVPR. It will fail if the GL driver does not
|
| - support NVPR */
|
| - kNVPR_GLContextType,
|
| - kNull_GLContextType,
|
| - kDebug_GLContextType,
|
| -
|
| - kLastGLContextType = kDebug_GLContextType
|
| + kNull_GLContextType,
|
| + kDebug_GLContextType,
|
| + 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,
|
| + };
|
| +
|
| static bool IsRenderingGLContext(GLContextType type) {
|
| switch (type) {
|
| case kNull_GLContextType:
|
| @@ -82,8 +81,6 @@ public:
|
| case kMESA_GLContextType:
|
| return "mesa";
|
| #endif
|
| - case kNVPR_GLContextType:
|
| - return "nvpr";
|
| case kDebug_GLContextType:
|
| return "debug";
|
| default:
|
| @@ -119,6 +116,7 @@ public:
|
|
|
| struct ContextInfo {
|
| GLContextType fType;
|
| + GLContextOptions fOptions;
|
| SkGLContext* fGLContext;
|
| GrContext* fGrContext;
|
| };
|
| @@ -126,13 +124,15 @@ public:
|
| * Get a context initialized with a type of GL context. It also makes the GL context current.
|
| * Pointer is valid until destroyContexts() is called.
|
| */
|
| - ContextInfo* getContextInfo(GLContextType type, GrGLStandard forcedGpuAPI = kNone_GrGLStandard);
|
| + ContextInfo* getContextInfo(GLContextType type, GrGLStandard forcedGpuAPI = kNone_GrGLStandard,
|
| + 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, GrGLStandard forcedGpuAPI = kNone_GrGLStandard) {
|
| - if (ContextInfo* info = this->getContextInfo(type, forcedGpuAPI)) {
|
| + GrContext* get(GLContextType type, GrGLStandard forcedGpuAPI = kNone_GrGLStandard,
|
| + GLContextOptions options = kNone_GLContextOptions) {
|
| + if (ContextInfo* info = this->getContextInfo(type, forcedGpuAPI, options)) {
|
| return info->fGrContext;
|
| }
|
| return nullptr;
|
|
|