Move texture descriptor into GrTexture
http://codereview.appspot.com/6258068/
git-svn-id: http://skia.googlecode.com/svn/trunk@4133 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrTexture.cpp b/src/gpu/GrTexture.cpp
index c145c71..00ae8d0 100644
--- a/src/gpu/GrTexture.cpp
+++ b/src/gpu/GrTexture.cpp
@@ -44,9 +44,15 @@
void GrTexture::releaseRenderTarget() {
if (NULL != fRenderTarget) {
GrAssert(fRenderTarget->asTexture() == this);
+ GrAssert(fDesc.fFlags & kRenderTarget_GrTextureFlagBit);
+
fRenderTarget->onTextureReleaseRenderTarget();
fRenderTarget->unref();
fRenderTarget = NULL;
+
+ fDesc.fFlags = fDesc.fFlags &
+ ~(kRenderTarget_GrTextureFlagBit|kNoStencil_GrTextureFlagBit);
+ fDesc.fSampleCnt = 0;
}
}
@@ -56,3 +62,21 @@
}
}
+void GrTexture::validateDesc() const {
+ if (NULL != this->asRenderTarget()) {
+ // This texture has a render target
+ GrAssert(0 != (fDesc.fFlags & kRenderTarget_GrTextureFlagBit));
+
+ if (NULL != this->asRenderTarget()->getStencilBuffer()) {
+ GrAssert(0 != (fDesc.fFlags & kNoStencil_GrTextureFlagBit));
+ } else {
+ GrAssert(0 == (fDesc.fFlags & kNoStencil_GrTextureFlagBit));
+ }
+
+ GrAssert(fDesc.fSampleCnt == this->asRenderTarget()->numSamples());
+ } else {
+ GrAssert(0 == (fDesc.fFlags & kRenderTarget_GrTextureFlagBit));
+ GrAssert(0 == (fDesc.fFlags & kNoStencil_GrTextureFlagBit));
+ GrAssert(0 == fDesc.fSampleCnt);
+ }
+}