diff options
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) { } |