<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri" size="2"><span style="font-size:10.5pt;">
<div align="left" style="text-align:justify;">Hi, All</div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;">I like to get some comment from you. </div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;">I am planning to enable wayland webgl support in webkit-efl. Basically they support X. With the update, I will not change the original mechanism and just translate X operation to wayland operation.</div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;">I think more and more developers will come across such issue when they want to support Wayland.</div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;">Here are some code translation.</div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;"><b>First part: open Display</b></div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;">+#if ENABLE(TIZEN_WAYLAND)</div>
<div align="left" style="text-align:justify;">+        g_nativeDisplay = wl_display_connect(NULL);</div>
<div align="left" style="text-align:justify;">+        assert(g_nativeDisplay);</div>
<div align="left" style="text-align:justify;">+        struct wl_registry *registry = wl_display_get_registry(g_nativeDisplay);</div>
<div align="left" style="text-align:justify;">+        wl_registry_add_listener(registry, NULL, NULL);</div>
<div align="left" style="text-align:justify;">+        wl_display_dispatch(g_nativeDisplay);</div>
<div align="left" style="text-align:justify;">+        m_window = (void *)wl_egl_window_create(NULL, 1, 1);</div>
<div align="left" style="text-align:justify;">+#else</div>
<div align="left" style="text-align:justify;">+        g_nativeDisplay = XOpenDisplay(0);</div>
<div align="left" style="text-align:justify;">+        g_nativeWindow = XCreateSimpleWindow(g_nativeDisplay, XDefaultRootWindow(g_nativeDisplay),</div>
<div align="left" style="text-align:justify;">                             0, 0, 1, 1, 0,</div>
<div align="left" style="text-align:justify;">                             BlackPixel(g_nativeDisplay, 0), WhitePixel(g_nativeDisplay, 0));</div>
<div align="left" style="text-align:justify;">+        XFlush(g_nativeDisplay);</div>
<div align="left" style="text-align:justify;">+#endif </div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;"><b>Second part: create surface</b></div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;">+#if ENABLE(TIZEN_WAYLAND)</div>
<div align="left" style="text-align:justify;">+    m_window = (void *)wl_egl_window_create(NULL, 1, 1);</div>
<div align="left" style="text-align:justify;">+    m_surface = eglCreateWindowSurface(m_display, surfaceConfig, (struct wl_egl_window *)m_window, NULL);</div>
<div align="left" style="text-align:justify;">+#else</div>
<div align="left" style="text-align:justify;">     m_pixmapID = XCreatePixmap(g_nativeDisplay, g_nativeWindow, 1, 1, 32);</div>
<div align="left" style="text-align:justify;">     m_surface = eglCreatePixmapSurface(m_display, surfaceConfig, m_pixmapID, NULL);</div>
<div align="left" style="text-align:justify;">+#endif</div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;">Wayland has no pixmap and wl_egl_pixmap has been moved out from mesa and wayland. Therefore I have to use window to replace them.</div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;">Currently with testing, it is fine. However I am afraid I miss something unexpected. Need Wayland expert like you to have a review of them.</div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;">Any suggestion for that?</div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;">Thanks</div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;">Regards</div>
<div align="left" style="text-align:justify;"> </div>
<div align="left" style="text-align:justify;">Quanxian Wang</div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
<div align="left" style="text-align:justify;"><font face="Times New Roman"> </font></div>
</span></font>
</body>
</html>