Index: src/gpu/gl/GrGLTexture.cpp |
diff --git a/src/gpu/gl/GrGLTexture.cpp b/src/gpu/gl/GrGLTexture.cpp |
index 39a8d9279feef49637882b5e7a15a1c0e59305d5..864547ae26045ee043ec5187f2d9b52f30bec78a 100644 |
--- a/src/gpu/gl/GrGLTexture.cpp |
+++ b/src/gpu/gl/GrGLTexture.cpp |
@@ -37,7 +37,13 @@ void GrGLTexture::init(const GrSurfaceDesc& desc, const IDDesc& idDesc) { |
void GrGLTexture::onRelease() { |
if (fInfo.fID) { |
if (GrGpuResource::kBorrowed_LifeCycle != fTextureIDLifecycle) { |
- GL_CALL(DeleteTextures(1, &fInfo.fID)); |
+ if (this->desc().fTextureStorageAllocator.fDeallocateTextureStorage) { |
+ this->desc().fTextureStorageAllocator.fDeallocateTextureStorage( |
+ this->desc().fTextureStorageAllocator.fCtx, |
+ reinterpret_cast<GrBackendObject>(&fInfo)); |
+ } else { |
+ GL_CALL(DeleteTextures(1, &fInfo.fID)); |
+ } |
} |
fInfo.fID = 0; |
} |