EvasGL supports direct rendering without extra copy from an offscreen buffer. 60/4260/1
authorJoone Hur <joone.hur@intel.com>
Tue, 25 Jun 2013 23:30:30 +0000 (16:30 -0700)
committerJoone Hur <joone.hur@intel.com>
Tue, 25 Jun 2013 23:30:30 +0000 (16:30 -0700)
In this case, all GL rendering is done in the pixel_getter callback, but this
callback is not called sometimes. So it seems that the viewport is not updated
when PageClientEvasGL::setViewNeedsDisplay is called directly from
WebPageProxy::setViewNeedsDisplay.

This patch allows to call ewk_view_mark_for_sync in PageClientEvasGL::setViewNeedsDisplay.

Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp

index 48a978d..186a77d 100755 (executable)
@@ -1471,7 +1471,11 @@ void PageClientEvasGL::updateViewportSize(const WebCore::IntSize& viewportSize,
 void PageClientEvasGL::setViewNeedsDisplay(const WebCore::IntRect& rect)
 {
 #if ENABLE(TIZEN_WEBKIT2_DIRECT_RENDERING)
-    if (!isDirectRendering())
+    // setViewNeedsDisplay is called directly from WebPageProxy::setViewNeedsDisplay.
+    // In this case, we need to call ewk_view_mark_for_sync here in order to update the viewport.
+    if (isDirectRendering())
+        ewk_view_mark_for_sync(m_viewImpl->view());
+    else
 #endif
     drawContents();
     m_viewImpl->redrawRegion(rect);