| Index: src/gpu/gl/GrGLPathRendering.cpp
|
| diff --git a/src/gpu/gl/GrGLPathRendering.cpp b/src/gpu/gl/GrGLPathRendering.cpp
|
| index 3cfec749acbdfb92b79be253c4dd59da15fe7131..7fb85352fb5b00aa2db7283745666ba44f3ccd8f 100644
|
| --- a/src/gpu/gl/GrGLPathRendering.cpp
|
| +++ b/src/gpu/gl/GrGLPathRendering.cpp
|
| @@ -291,13 +291,20 @@ void GrGLPathRendering::deletePaths(GrGLuint path, GrGLsizei range) {
|
|
|
| void GrGLPathRendering::flushPathStencilSettings(const GrStencilSettings& stencilSettings) {
|
| if (fHWPathStencilSettings != stencilSettings) {
|
| + SkASSERT(stencilSettings.isValid());
|
| // Just the func, ref, and mask is set here. The op and write mask are params to the call
|
| // that draws the path to the SB (glStencilFillPath)
|
| - GrGLenum func =
|
| - GrToGLStencilFunc(stencilSettings.func(GrStencilSettings::kFront_Face));
|
| - GL_CALL(PathStencilFunc(func, stencilSettings.funcRef(GrStencilSettings::kFront_Face),
|
| - stencilSettings.funcMask(GrStencilSettings::kFront_Face)));
|
| -
|
| + const GrStencilSettings::Face kFront_Face = GrStencilSettings::kFront_Face;
|
| + GrStencilFunc func = stencilSettings.func(kFront_Face);
|
| + uint16_t funcRef = stencilSettings.funcRef(kFront_Face);
|
| + uint16_t funcMask = stencilSettings.funcMask(kFront_Face);
|
| +
|
| + if (!fHWPathStencilSettings.isValid() ||
|
| + func != fHWPathStencilSettings.func(kFront_Face) ||
|
| + funcRef != fHWPathStencilSettings.funcRef(kFront_Face) ||
|
| + funcMask != fHWPathStencilSettings.funcMask(kFront_Face)) {
|
| + GL_CALL(PathStencilFunc(GrToGLStencilFunc(func), funcRef, funcMask));
|
| + }
|
| fHWPathStencilSettings = stencilSettings;
|
| }
|
| }
|
|
|