| Index: src/gpu/GrGpu.cpp
|
| diff --git a/src/gpu/GrGpu.cpp b/src/gpu/GrGpu.cpp
|
| index 65100489f4b7ad01c94b83734440334bdd46a65d..d8ffe6745d3271f05321ed1e3e64e0a66368674c 100644
|
| --- a/src/gpu/GrGpu.cpp
|
| +++ b/src/gpu/GrGpu.cpp
|
| @@ -298,10 +298,12 @@ const GrIndexBuffer* GrGpu::getQuadIndexBuffer() const {
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|
| -bool GrGpu::setupClipAndFlushState(DrawType type, const GrDeviceCoordTexture* dstCopy,
|
| +bool GrGpu::setupClipAndFlushState(DrawType type,
|
| + const GrDeviceCoordTexture* dstCopy,
|
| GrDrawState::AutoRestoreEffects* are,
|
| + GrDrawState::AutoRestoreStencil* ars,
|
| const SkRect* devBounds) {
|
| - if (!fClipMaskManager.setupClipping(this->getClip(), are, devBounds)) {
|
| + if (!fClipMaskManager.setupClipping(this->getClip(), are, ars, devBounds)) {
|
| return false;
|
| }
|
|
|
| @@ -344,8 +346,9 @@ void GrGpu::geometrySourceWillPop(const GeometrySrcState& restoredState) {
|
| void GrGpu::onDraw(const DrawInfo& info) {
|
| this->handleDirtyContext();
|
| GrDrawState::AutoRestoreEffects are;
|
| + GrDrawState::AutoRestoreStencil asr;
|
| if (!this->setupClipAndFlushState(PrimTypeToDrawType(info.primitiveType()),
|
| - info.getDstCopy(), &are, info.getDevBounds())) {
|
| + info.getDstCopy(), &are, &asr, info.getDevBounds())) {
|
| return;
|
| }
|
| this->onGpuDraw(info);
|
| @@ -355,7 +358,8 @@ void GrGpu::onStencilPath(const GrPath* path, SkPath::FillType fill) {
|
| this->handleDirtyContext();
|
|
|
| GrDrawState::AutoRestoreEffects are;
|
| - if (!this->setupClipAndFlushState(kStencilPath_DrawType, NULL, &are, NULL)) {
|
| + GrDrawState::AutoRestoreStencil asr;
|
| + if (!this->setupClipAndFlushState(kStencilPath_DrawType, NULL, &are, &asr, NULL)) {
|
| return;
|
| }
|
|
|
| @@ -370,7 +374,8 @@ void GrGpu::onDrawPath(const GrPath* path, SkPath::FillType fill,
|
| drawState()->setDefaultVertexAttribs();
|
|
|
| GrDrawState::AutoRestoreEffects are;
|
| - if (!this->setupClipAndFlushState(kDrawPath_DrawType, dstCopy, &are, NULL)) {
|
| + GrDrawState::AutoRestoreStencil asr;
|
| + if (!this->setupClipAndFlushState(kDrawPath_DrawType, dstCopy, &are, &asr, NULL)) {
|
| return;
|
| }
|
|
|
| @@ -386,7 +391,8 @@ void GrGpu::onDrawPaths(const GrPathRange* pathRange,
|
| drawState()->setDefaultVertexAttribs();
|
|
|
| GrDrawState::AutoRestoreEffects are;
|
| - if (!this->setupClipAndFlushState(kDrawPaths_DrawType, dstCopy, &are, NULL)) {
|
| + GrDrawState::AutoRestoreStencil asr;
|
| + if (!this->setupClipAndFlushState(kDrawPaths_DrawType, dstCopy, &are, &asr, NULL)) {
|
| return;
|
| }
|
|
|
|
|