Title: [140252] trunk/Source/WebCore
Revision
140252
Author
[email protected]
Date
2013-01-19 09:15:41 -0800 (Sat, 19 Jan 2013)

Log Message

[EFL][WebGL] Regression: WebGL Content is not drawn after resizing the canvas.
https://bugs.webkit.org/show_bug.cgi?id=107366

Patch by Kondapally Kalyan <[email protected]> on 2013-01-19
Reviewed by Kenneth Rohde Christiansen.

Window is shared between GraphicsSurface and its client.
Client doesn't own the Window. This patch ensures that client
doesn't delete the shared Window handle.

Covered by existing WebGL tests.

* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::clear):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (140251 => 140252)


--- trunk/Source/WebCore/ChangeLog	2013-01-19 16:23:59 UTC (rev 140251)
+++ trunk/Source/WebCore/ChangeLog	2013-01-19 17:15:41 UTC (rev 140252)
@@ -1,3 +1,19 @@
+2013-01-19  Kondapally Kalyan  <[email protected]>
+
+        [EFL][WebGL] Regression: WebGL Content is not drawn after resizing the canvas.
+        https://bugs.webkit.org/show_bug.cgi?id=107366
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Window is shared between GraphicsSurface and its client.
+        Client doesn't own the Window. This patch ensures that client
+        doesn't delete the shared Window handle.
+
+        Covered by existing WebGL tests.
+
+        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
+        (WebCore::GraphicsSurfacePrivate::clear):
+
 2013-01-18  Antti Koivisto  <[email protected]>
 
         Make renderer constructors take Element where possible

Modified: trunk/Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp (140251 => 140252)


--- trunk/Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp	2013-01-19 16:23:59 UTC (rev 140251)
+++ trunk/Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp	2013-01-19 17:15:41 UTC (rev 140252)
@@ -439,7 +439,8 @@
             m_xPixmap = 0;
         }
 
-        if (m_surface) {
+        // Client doesn't own the window. Delete surface only on writing side.
+        if (!m_isReceiver && m_surface) {
             XDestroyWindow(m_display, m_surface);
             m_surface = 0;
         }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to