Simplified stencil buffer caching
https://codereview.appspot.com/6503073/
git-svn-id: http://skia.googlecode.com/svn/trunk@5400 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrRenderTarget.cpp b/src/gpu/GrRenderTarget.cpp
index 816a633..6235808 100644
--- a/src/gpu/GrRenderTarget.cpp
+++ b/src/gpu/GrRenderTarget.cpp
@@ -96,12 +96,24 @@
void GrRenderTarget::setStencilBuffer(GrStencilBuffer* stencilBuffer) {
if (NULL != fStencilBuffer) {
- fStencilBuffer->wasDetachedFromRenderTarget(this);
+ GrContext* context = this->getContext();
+ if (NULL != context) {
+ context->unlockStencilBuffer(fStencilBuffer);
+ }
fStencilBuffer->unref();
}
+
fStencilBuffer = stencilBuffer;
+
if (NULL != fStencilBuffer) {
- fStencilBuffer->wasAttachedToRenderTarget(this);
fStencilBuffer->ref();
}
}
+
+void GrRenderTarget::onRelease() {
+ this->setStencilBuffer(NULL);
+}
+
+void GrRenderTarget::onAbandon() {
+ this->setStencilBuffer(NULL);
+}