112 lines
5.1 KiB
Diff
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
|
||
|
|