| Index: src/gpu/gl/GrGLCaps.cpp
|
| diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
|
| index 4a62c5acaab1ce370545f9b11d991153260d0e3f..8f2d4c129742fb9cbcb0be099b7538fbbec386d4 100644
|
| --- a/src/gpu/gl/GrGLCaps.cpp
|
| +++ b/src/gpu/gl/GrGLCaps.cpp
|
| @@ -311,8 +311,27 @@ bool GrGLCaps::init(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli) {
|
| // attachment, hence this min:
|
| fMaxRenderTargetSize = SkTMin(fMaxTextureSize, fMaxRenderTargetSize);
|
|
|
| - fPathRenderingSupport = ctxInfo.hasExtension("GL_NV_path_rendering") &&
|
| - ctxInfo.hasExtension("GL_EXT_direct_state_access");
|
| + fPathRenderingSupport = ctxInfo.hasExtension("GL_NV_path_rendering");
|
| +
|
| + if (fPathRenderingSupport) {
|
| + if (kGL_GrGLStandard == standard) {
|
| + // We need one of the two possible texturing methods: using fixed function pipeline
|
| + // (PathTexGen, texcoords, ...) or using the newer NVPR API additions that support
|
| + // setting individual fragment inputs with ProgramPathFragmentInputGen. The API
|
| + // additions are detected by checking the existence of the function. Eventually we may
|
| + // choose to remove the fixed function codepath.
|
| + // Set fMaxFixedFunctionTextureCoords = 0 here if you want to force
|
| + // ProgramPathFragmentInputGen usage on desktop.
|
| + fPathRenderingSupport = ctxInfo.hasExtension("GL_EXT_direct_state_access") &&
|
| + (fMaxFixedFunctionTextureCoords > 0 ||
|
| + ((ctxInfo.version() >= GR_GL_VER(4,3) ||
|
| + ctxInfo.hasExtension("GL_ARB_program_interface_query")) &&
|
| + NULL != gli->fFunctions.fProgramPathFragmentInputGen));
|
| + } else {
|
| + // Note: path rendering is not yet implemented for GLES.
|
| + fPathRenderingSupport = ctxInfo.version() >= GR_GL_VER(3,1) && false;
|
| + }
|
| + }
|
|
|
| fGpuTracingSupport = ctxInfo.hasExtension("GL_EXT_debug_marker");
|
|
|
|
|