[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
jamesr at google.com
jamesr at google.com
Wed Dec 22 13:16:20 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 31edf9f3ebf5b0a02d634dd3c7e61c9b5bd19187
Author: jamesr at google.com <jamesr at google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Sep 10 03:25:25 2010 +0000
2010-09-09 James Robinson <jamesr at chromium.org>
Reviewed by Kenneth Russell.
[chromium] Don't call deleteTexture on a texture attached to an FBO that is not currently bound
https://bugs.webkit.org/show_bug.cgi?id=45504
The OpenGL semantics for glDeleteTextures() are that if one of the specified texture is attached
to the currently bound FBO, that FBO's color attachment is removed. However, if the specified
texture is attached to a non-current FBO then OpenGL states explicitly that that FBO's color
attachment is not cleared and that the texture stays alive even though its ID is no longer
valid to use. This is not the behavior we want in DrawingBuffer - we actually want the
texture to be immediately deleted. This patch makes sure the DrawingBuffer's FBO is bound
before deleting its color attachment texture.
* platform/graphics/chromium/DrawingBufferChromium.cpp:
(WebCore::DrawingBuffer::~DrawingBuffer):
(WebCore::DrawingBuffer::reset):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 4065185..c2eb863 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -2,6 +2,25 @@
Reviewed by Kenneth Russell.
+ [chromium] Don't call deleteTexture on a texture attached to an FBO that is not currently bound
+ https://bugs.webkit.org/show_bug.cgi?id=45504
+
+ The OpenGL semantics for glDeleteTextures() are that if one of the specified texture is attached
+ to the currently bound FBO, that FBO's color attachment is removed. However, if the specified
+ texture is attached to a non-current FBO then OpenGL states explicitly that that FBO's color
+ attachment is not cleared and that the texture stays alive even though its ID is no longer
+ valid to use. This is not the behavior we want in DrawingBuffer - we actually want the
+ texture to be immediately deleted. This patch makes sure the DrawingBuffer's FBO is bound
+ before deleting its color attachment texture.
+
+ * platform/graphics/chromium/DrawingBufferChromium.cpp:
+ (WebCore::DrawingBuffer::~DrawingBuffer):
+ (WebCore::DrawingBuffer::reset):
+
+2010-09-09 James Robinson <jamesr at chromium.org>
+
+ Reviewed by Kenneth Russell.
+
[chromium] Chromium mac build should exclude all Skia files in platform/graphics/skia/, not just some
https://bugs.webkit.org/show_bug.cgi?id=45516
diff --git a/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp b/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp
index 89e8705..64981ee 100644
--- a/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp
+++ b/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp
@@ -88,6 +88,8 @@ DrawingBuffer::~DrawingBuffer()
if (m_internal->platformLayer)
m_internal->platformLayer->setDrawingBuffer(0);
#endif
+ m_context->bindFramebuffer(m_framebuffer);
+ m_context->deleteTexture(m_internal->offscreenColorTexture);
m_context->deleteFramebuffer(m_framebuffer);
}
@@ -113,9 +115,9 @@ void DrawingBuffer::reset(const IntSize& newSize)
if (m_size == newSize)
return;
m_size = newSize;
- m_context->deleteTexture(m_internal->offscreenColorTexture);
- m_context->bindFramebuffer(m_framebuffer);
- m_internal->offscreenColorTexture = generateColorTexture(m_context, m_size);
+
+ m_context->bindTexture(GraphicsContext3D::TEXTURE_2D, m_internal->offscreenColorTexture);
+ m_context->texImage2D(GraphicsContext3D::TEXTURE_2D, 0, GraphicsContext3D::RGBA, m_size.width(), m_size.height(), 0, GraphicsContext3D::RGBA, GraphicsContext3D::UNSIGNED_BYTE, 0);
#if USE(ACCELERATED_COMPOSITING)
if (m_internal->platformLayer)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list