Fix dangling ptr when GrRenderTarget outlives its GrTexture representation
Move management of fRenderTarget ptr from GL texture class to base class
Minor:
Remove redundant GrContext-per-frame debug code in SampleApp.cpp
Add GrTexture.cpp to legacy VS2010 vcxproj
Review URL: http://codereview.appspot.com/4352051/
git-svn-id: http://skia.googlecode.com/svn/trunk@1061 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/src/GrGLTexture.cpp b/gpu/src/GrGLTexture.cpp
index bd157d2..ce9345b 100644
--- a/gpu/src/GrGLTexture.cpp
+++ b/gpu/src/GrGLTexture.cpp
@@ -118,7 +118,6 @@
textureDesc.fAllocWidth;
fScaleY = GrIntToScalar(textureDesc.fContentHeight) /
textureDesc.fAllocHeight;
- fRenderTarget = NULL;
GrAssert(0 != textureDesc.fTextureID);
@@ -137,30 +136,19 @@
}
void GrGLTexture::onRelease() {
+ INHERITED::onRelease();
if (NULL != fTexIDObj) {
GPUGL->notifyTextureDelete(this);
fTexIDObj->unref();
fTexIDObj = NULL;
- GrSafeUnref(fRenderTarget);
}
}
void GrGLTexture::onAbandon() {
+ INHERITED::onAbandon();
if (NULL != fTexIDObj) {
fTexIDObj->abandon();
}
- if (NULL != fRenderTarget) {
- fRenderTarget->abandon();
- }
-}
-
-GrRenderTarget* GrGLTexture::asRenderTarget() {
- return fRenderTarget;
-}
-
-void GrGLTexture::releaseRenderTarget() {
- GrSafeUnref(fRenderTarget);
- fRenderTarget = NULL;
}
void GrGLTexture::uploadTextureData(uint32_t x,
@@ -189,5 +177,3 @@
return fTexIDObj->id();
}
-
-