make sure video texture is setup at startup time 71/10171/2
authorZhao Halley <halley.zhao@intel.com>
Mon, 23 Sep 2013 09:20:44 +0000 (17:20 +0800)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Thu, 26 Sep 2013 22:38:42 +0000 (15:38 -0700)
Change-Id: I40cce417501abd3d90995c669ec0b871c2ae4e6b

Source/WebCore/platform/graphics/surfaces/wayland/GraphicsSurfaceWayland.cpp
Source/WebCore/platform/graphics/surfaces/wayland/WaylandSurface.cpp

index 19320eb..c63be6f 100644 (file)
@@ -63,7 +63,15 @@ public:
 
     uint32_t totalPlanes()
     {
-        return m_platformTexture ? m_platformTexture->totalPlanes() : 0;
+        uint32_t ret = 0;
+        if (m_platformTexture) {
+            ret = m_platformTexture->totalPlanes();
+            if (!ret) {
+                m_platformTexture->initialize(m_useLinearFilter);
+                ret = m_platformTexture->totalPlanes();
+            }
+        }
+        return ret;
     }
 
     uint32_t textureFormat()
index 61fefaf..20be195 100644 (file)
@@ -344,8 +344,15 @@ void WaylandBuffer::queryBufferInformation()
 {
     int numPlanes = 0;
 
-    if (!m_commitedResource || (m_state & Destroyed))
-        return;
+    if (!m_commitedResource || (m_state & Destroyed)) {
+            WaylandDisplay::instance()->lock();
+            WaylandDisplay::instance()->handlePendingEvents();
+            handleSurfaceCommit();
+            WaylandDisplay::instance()->unlock();
+
+        if (!m_commitedResource || (m_state & Destroyed))
+            return;
+    }
 
     EGLDisplay display = WaylandCompositor::getInstance()->m_eglDisplay;
     if (display == EGL_NO_DISPLAY) {