Change-Id: I40cce417501abd3d90995c669ec0b871c2ae4e6b
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()
{
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) {