<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[173716] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/173716">173716</a></dd>
<dt>Author</dt> <dd>zandobersek@gmail.com</dd>
<dt>Date</dt> <dd>2014-09-17 23:21:55 -0700 (Wed, 17 Sep 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>[GTK] Add Wayland support to GLContextEGL
https://bugs.webkit.org/show_bug.cgi?id=136829

Reviewed by Martin Robinson.

* platform/graphics/egl/GLContextEGL.cpp:
(WebCore::sharedEGLDisplay): Special-case the shared EGL display initialization
for the GTK port when running under Wayland. In that case the pointer to the
native wl_display object should be passed to eglGetDisplay(). If not running
under Wayland we should fall back to using the shared X11 display (if support
for that display system is enabled) or the EGL_DEFAULT_DISPLAY.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicseglGLContextEGLcpp">trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (173715 => 173716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-09-18 02:32:21 UTC (rev 173715)
+++ trunk/Source/WebCore/ChangeLog        2014-09-18 06:21:55 UTC (rev 173716)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2014-09-17  Iago Toral  &lt;itoral@igalia.com&gt; and Zan Dobersek  &lt;zdobersek@igalia.com&gt;
+
+        [GTK] Add Wayland support to GLContextEGL
+        https://bugs.webkit.org/show_bug.cgi?id=136829
+
+        Reviewed by Martin Robinson.
+
+        * platform/graphics/egl/GLContextEGL.cpp:
+        (WebCore::sharedEGLDisplay): Special-case the shared EGL display initialization
+        for the GTK port when running under Wayland. In that case the pointer to the
+        native wl_display object should be passed to eglGetDisplay(). If not running
+        under Wayland we should fall back to using the shared X11 display (if support
+        for that display system is enabled) or the EGL_DEFAULT_DISPLAY.
+
</ins><span class="cx"> 2014-09-17  Daniel Bates  &lt;dabates@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r173695.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicseglGLContextEGLcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp (173715 => 173716)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp        2014-09-18 02:32:21 UTC (rev 173715)
+++ trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp        2014-09-18 06:21:55 UTC (rev 173716)
</span><span class="lines">@@ -35,6 +35,13 @@
</span><span class="cx"> #include &quot;OpenGLShims.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#if PLATFORM(GTK)
+#include &quot;GtkUtilities.h&quot;
+#if PLATFORM(WAYLAND) &amp;&amp; !defined(GTK_API_VERSION_2)
+#include &quot;WaylandDisplay.h&quot;
+#endif
+#endif
+
</ins><span class="cx"> #if ENABLE(ACCELERATED_2D_CANVAS)
</span><span class="cx"> // cairo-gl.h includes some definitions from GLX that conflict with
</span><span class="cx"> // the ones provided by us. Since GLContextEGL doesn't use any GLX
</span><span class="lines">@@ -58,10 +65,15 @@
</span><span class="cx">     static bool initialized = false;
</span><span class="cx">     if (!initialized) {
</span><span class="cx">         initialized = true;
</span><ins>+#if PLATFORM(GTK) &amp;&amp; PLATFORM(WAYLAND) &amp;&amp; !defined(GTK_API_VERSION_2)
+        if (getDisplaySystemType() == DisplaySystemType::Wayland &amp;&amp; WaylandDisplay::instance())
+            gSharedEGLDisplay = eglGetDisplay(WaylandDisplay::instance()-&gt;nativeDisplay());
+        else // Note that this branch continutes outside this #if-guarded segment.
+#endif
</ins><span class="cx"> #if PLATFORM(X11)
</span><del>-        gSharedEGLDisplay = eglGetDisplay(GLContext::sharedX11Display());
</del><ins>+            gSharedEGLDisplay = eglGetDisplay(GLContext::sharedX11Display());
</ins><span class="cx"> #else
</span><del>-        gSharedEGLDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
</del><ins>+            gSharedEGLDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
</ins><span class="cx"> #endif
</span><span class="cx">         if (gSharedEGLDisplay != EGL_NO_DISPLAY &amp;&amp; (!eglInitialize(gSharedEGLDisplay, 0, 0) || !eglBindAPI(gGLAPI)))
</span><span class="cx">             gSharedEGLDisplay = EGL_NO_DISPLAY;
</span></span></pre>
</div>
</div>

</body>
</html>