Index: src/gpu/gl/GrGpuGL.cpp |
diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp |
index e7daa6b6592bf777d5ca213f98b64957dd9bd0be..41071fb6421399bd09df78dfe0988e6883563e79 100644 |
--- a/src/gpu/gl/GrGpuGL.cpp |
+++ b/src/gpu/gl/GrGpuGL.cpp |
@@ -159,14 +159,20 @@ GrGpuGL::~GrGpuGL() { |
SkASSERT(fHWProgramID == fCurrentProgram->programID()); |
GL_CALL(UseProgram(0)); |
} |
- |
+ |
delete fProgramCache; |
// This must be called by before the GrDrawTarget destructor |
this->releaseGeometry(); |
- // This subclass must do this before the base class destructor runs |
- // since we will unref the GrGLInterface. |
- this->releaseResources(); |
+} |
+ |
+void GrGpuGL::contextAbandonded() { |
+ INHERITED::contextAbandonded(); |
+ fProgramCache->abandon(); |
+ fHWProgramID = 0; |
+ if (this->glCaps().pathRenderingSupport()) { |
+ this->glPathRendering()->abandonGpuResources(); |
+ } |
} |
/////////////////////////////////////////////////////////////////////////////// |