diff options
author | Steve Block <steveblock@google.com> | 2011-05-25 19:08:45 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-06-08 13:51:31 +0100 |
commit | 2bde8e466a4451c7319e3a072d118917957d6554 (patch) | |
tree | 28f4a1b869a513e565c7760d0e6a06e7cf1fe95a /Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp | |
parent | 6939c99b71d9372d14a0c74a772108052e8c48c8 (diff) | |
download | external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.zip external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.gz external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.bz2 |
Merge WebKit at r82507: Initial merge by git
Change-Id: I60ce9d780725b58b45e54165733a8ffee23b683e
Diffstat (limited to 'Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp')
-rw-r--r-- | Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp b/Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp index e83d045..652e752 100644 --- a/Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp +++ b/Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp @@ -47,10 +47,11 @@ PassRefPtr<WebGLLayerChromium> WebGLLayerChromium::create(GraphicsLayerChromium* WebGLLayerChromium::WebGLLayerChromium(GraphicsLayerChromium* owner) : CanvasLayerChromium(owner) , m_context(0) + , m_textureUpdated(false) { } -void WebGLLayerChromium::updateContentsIfDirty() +void WebGLLayerChromium::updateCompositorResources() { if (!m_contentsDirty) return; @@ -68,19 +69,28 @@ void WebGLLayerChromium::updateContentsIfDirty() m_textureChanged = false; } // Update the contents of the texture used by the compositor. - if (m_contentsDirty) { + if (m_contentsDirty && m_textureUpdated) { m_context->prepareTexture(); + m_context->markLayerComposited(); m_contentsDirty = false; + m_textureUpdated = false; } } +void WebGLLayerChromium::setTextureUpdated() +{ + m_textureUpdated = true; +} + void WebGLLayerChromium::setContext(const GraphicsContext3D* context) { m_context = const_cast<GraphicsContext3D*>(context); unsigned int textureId = m_context->platformTexture(); - if (textureId != m_textureId) + if (textureId != m_textureId) { m_textureChanged = true; + m_textureUpdated = true; + } m_textureId = textureId; m_premultipliedAlpha = m_context->getContextAttributes().premultipliedAlpha; } |