summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp4
-rw-r--r--Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h2
-rw-r--r--Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayer.h1
3 files changed, 7 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp b/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp
index 1c7289cec..9824eb55f 100644
--- a/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp
+++ b/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp
@@ -221,6 +221,10 @@ void GraphicsContext3DPrivate::initializeANGLE()
GraphicsContext3DPrivate::~GraphicsContext3DPrivate()
{
+#if USE(ACCELERATED_COMPOSITING)
+ if (TextureMapperPlatformLayer::Client* client = TextureMapperPlatformLayer::client())
+ client->platformLayerWasDestroyed();
+#endif
delete m_surfaceOwner;
m_surfaceOwner = 0;
}
diff --git a/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h b/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h
index 61ddfb92a..16e4ebad0 100644
--- a/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h
+++ b/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h
@@ -112,7 +112,9 @@ private:
void prepareBackingStoreIfNeeded();
bool shouldHaveBackingStore() const;
+ // TextureMapperPlatformLayer::Client methods:
virtual void setPlatformLayerNeedsDisplay() OVERRIDE { setContentsNeedsDisplay(); }
+ virtual void platformLayerWasDestroyed() OVERRIDE { m_contentsLayer = 0; }
// This set of flags help us defer which properties of the layer have been
// modified by the compositor, so we can know what to look for in the next flush.
diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayer.h b/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayer.h
index 0cab98da4..e0888766a 100644
--- a/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayer.h
+++ b/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayer.h
@@ -34,6 +34,7 @@ public:
class Client {
public:
virtual void setPlatformLayerNeedsDisplay() = 0;
+ virtual void platformLayerWasDestroyed() = 0;
};
TextureMapperPlatformLayer() : m_client(0) { }