qtwebkit/0015-WebGL-EFL-Qt-GTK-Jelly...

112 lines
5.1 KiB
Diff

From a84c6dda2ab79017b9fbaa5cfd6ca554654913ac Mon Sep 17 00:00:00 2001
From: Huang Dongsung <luxtella@company100.net>
Date: Tue, 14 Jan 2014 14:20:13 +0100
Subject: [PATCH 15/20] [WebGL][EFL][Qt][GTK] Jelly fishes leave trails on
webgl canvas. https://bugs.webkit.org/show_bug.cgi?id=105326
Reviewed by Noam Rosenthal.
Clear a drawing buffer after compositing if preserveDrawingBuffer is
false.
http://www.khronos.org/registry/webgl/specs/latest/#2.2
No new tests. Covered by existing webgl-preserve-drawing-buffer-repaint test.
* platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(GraphicsContext3DPrivate::copyToGraphicsSurface):
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
(WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
Source/WebCore/ChangeLog | 21 +++++++++++++++++++++
.../graphics/cairo/GraphicsContext3DPrivate.cpp | 2 ++
.../graphics/efl/GraphicsContext3DPrivate.cpp | 2 ++
.../platform/graphics/qt/GraphicsContext3DQt.cpp | 2 ++
4 files changed, 27 insertions(+)
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index f0ebd4c..3fb41fe 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1222,6 +1222,27 @@
2012-12-20 Huang Dongsung <luxtella@company100.net>
+ [WebGL][EFL][Qt][GTK] Jelly fishes leave trails on webgl canvas.
+ https://bugs.webkit.org/show_bug.cgi?id=105326
+
+ Reviewed by Noam Rosenthal.
+
+ Clear a drawing buffer after compositing if preserveDrawingBuffer is
+ false.
+ http://www.khronos.org/registry/webgl/specs/latest/#2.2
+
+ No new tests. Covered by existing webgl-preserve-drawing-buffer-repaint test.
+
+ * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
+ (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
+ * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
+ (GraphicsContext3DPrivate::copyToGraphicsSurface):
+ * platform/graphics/qt/GraphicsContext3DQt.cpp:
+ (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
+ (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
+
+2012-12-20 Huang Dongsung <luxtella@company100.net>
+
[TexMap] Remove ParentChange in TextureMapperLayer.
https://bugs.webkit.org/show_bug.cgi?id=105494
diff --git a/Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp b/Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp
index 294169e..dc96e2d 100644
--- a/Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp
+++ b/Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp
@@ -85,6 +85,8 @@ void GraphicsContext3DPrivate::paintToTextureMapper(TextureMapper* textureMapper
ASSERT(m_renderStyle == GraphicsContext3D::RenderOffscreen);
+ m_context->markLayerComposited();
+
// FIXME: We do not support mask for the moment with TextureMapperImageBuffer.
if (textureMapper->accelerationMode() != TextureMapper::OpenGLMode) {
GraphicsContext* context = textureMapper->graphicsContext();
diff --git a/Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp b/Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp
index c9fc4a0..7f6024b 100644
--- a/Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp
+++ b/Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp
@@ -141,6 +141,8 @@ uint32_t GraphicsContext3DPrivate::copyToGraphicsSurface()
if (!m_platformContext || !makeContextCurrent())
return 0;
+ m_context->markLayerComposited();
+
if (m_pendingSurfaceResize) {
m_pendingSurfaceResize = false;
m_platformSurface->setGeometry(IntRect(0, 0, m_context->m_currentWidth, m_context->m_currentHeight));
diff --git a/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp b/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp
index e72701d..683b76c 100644
--- a/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp
+++ b/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp
@@ -233,6 +233,7 @@ static inline quint32 swapBgrToRgb(quint32 pixel)
#if USE(ACCELERATED_COMPOSITING)
void GraphicsContext3DPrivate::paintToTextureMapper(TextureMapper* textureMapper, const FloatRect& targetRect, const TransformationMatrix& matrix, float opacity, BitmapTexture* mask)
{
+ m_context->markLayerComposited();
blitMultisampleFramebufferAndRestoreContext();
if (textureMapper->accelerationMode() == TextureMapper::OpenGLMode) {
@@ -299,6 +300,7 @@ uint32_t GraphicsContext3DPrivate::copyToGraphicsSurface()
if (!m_graphicsSurface)
return 0;
+ m_context->markLayerComposited();
blitMultisampleFramebufferAndRestoreContext();
makeCurrentIfNeeded();
m_graphicsSurface->copyFromTexture(m_context->m_texture, IntRect(0, 0, m_context->m_currentWidth, m_context->m_currentHeight));
--
1.8.5.3