diff options
-rw-r--r-- | src/gpu/gl/GrGLContext.cpp | 6 | ||||
-rw-r--r-- | src/gpu/gl/GrGLUtil.cpp | 13 | ||||
-rw-r--r-- | src/gpu/gl/GrGLUtil.h | 2 |
3 files changed, 7 insertions, 14 deletions
diff --git a/src/gpu/gl/GrGLContext.cpp b/src/gpu/gl/GrGLContext.cpp index 2ae47101e6..ffbae86bc9 100644 --- a/src/gpu/gl/GrGLContext.cpp +++ b/src/gpu/gl/GrGLContext.cpp @@ -25,10 +25,6 @@ std::unique_ptr<GrGLContext> GrGLContext::Make(sk_sp<const GrGLInterface> interf GR_GL_CALL_RET(interface.get(), rendererUByte, GetString(GR_GL_RENDERER)); const char* renderer = reinterpret_cast<const char*>(rendererUByte); - const GrGLubyte* extensionsUByte; - GR_GL_CALL_RET(interface.get(), extensionsUByte, GetString(GR_GL_EXTENSIONS)); - const char* extensions = reinterpret_cast<const char*>(extensionsUByte); - ConstructorArgs args; args.fGLVersion = GrGLGetVersionFromString(ver); if (GR_GL_INVALID_VER == args.fGLVersion) { @@ -41,7 +37,7 @@ std::unique_ptr<GrGLContext> GrGLContext::Make(sk_sp<const GrGLInterface> interf args.fVendor = GrGLGetVendor(interface.get()); - args.fRenderer = GrGLGetRendererFromStrings(renderer, extensions); + args.fRenderer = GrGLGetRendererFromStrings(renderer, interface->fExtensions); GrGLGetANGLEInfoFromString(renderer, &args.fANGLEBackend, &args.fANGLEVendor, &args.fANGLERenderer); diff --git a/src/gpu/gl/GrGLUtil.cpp b/src/gpu/gl/GrGLUtil.cpp index 16b3de58c8..54bf0d3700 100644 --- a/src/gpu/gl/GrGLUtil.cpp +++ b/src/gpu/gl/GrGLUtil.cpp @@ -292,15 +292,15 @@ static bool is_renderer_angle(const char* rendererString) { return 0 == strncmp(rendererString, kHeader, kHeaderLength); } -GrGLRenderer GrGLGetRendererFromStrings(const char* rendererString, const char* extensionString) { +GrGLRenderer GrGLGetRendererFromStrings(const char* rendererString, + const GrGLExtensions& extensions) { if (rendererString) { static const char kTegraStr[] = "NVIDIA Tegra"; if (0 == strncmp(rendererString, kTegraStr, SK_ARRAY_COUNT(kTegraStr) - 1)) { // Tegra strings are not very descriptive. We distinguish between the modern and legacy // architectures by the presence of NV_path_rendering. - return (extensionString && strstr(extensionString, "GL_NV_path_rendering")) - ? kTegra_GrGLRenderer - : kTegra_PreK1_GrGLRenderer; + return extensions.has("GL_NV_path_rendering") ? kTegra_GrGLRenderer + : kTegra_PreK1_GrGLRenderer; } int lastDigit; int n = sscanf(rendererString, "PowerVR SGX 54%d", &lastDigit); @@ -476,10 +476,7 @@ GrGLRenderer GrGLGetRenderer(const GrGLInterface* gl) { const GrGLubyte* rendererString; GR_GL_CALL_RET(gl, rendererString, GetString(GR_GL_RENDERER)); - const GrGLubyte* extensionString; - GR_GL_CALL_RET(gl, extensionString, GetString(GR_GL_EXTENSIONS)); - - return GrGLGetRendererFromStrings((const char*) rendererString, (const char*) extensionString); + return GrGLGetRendererFromStrings((const char*)rendererString, gl->fExtensions); } GrGLenum GrToGLStencilFunc(GrStencilTest test) { diff --git a/src/gpu/gl/GrGLUtil.h b/src/gpu/gl/GrGLUtil.h index 212d0dad3d..5280834de1 100644 --- a/src/gpu/gl/GrGLUtil.h +++ b/src/gpu/gl/GrGLUtil.h @@ -162,7 +162,7 @@ GrGLVersion GrGLGetVersionFromString(const char* versionString); GrGLStandard GrGLGetStandardInUseFromString(const char* versionString); GrGLSLVersion GrGLGetGLSLVersionFromString(const char* versionString); GrGLVendor GrGLGetVendorFromString(const char* vendorString); -GrGLRenderer GrGLGetRendererFromStrings(const char* rendererString, const char* extensionString); +GrGLRenderer GrGLGetRendererFromStrings(const char* rendererString, const GrGLExtensions&); void GrGLGetANGLEInfoFromString(const char* rendererString, GrGLANGLEBackend*, GrGLANGLEVendor*, GrGLANGLERenderer*); |