e_plane: get tbm_surface according to buffer type 00/168100/2
authorChangyeon Lee <cyeon.lee@samsung.com>
Mon, 15 Jan 2018 08:38:44 +0000 (17:38 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Wed, 24 Jan 2018 07:17:34 +0000 (07:17 +0000)
Change-Id: I9ba3dc261c5cb461419c229ebfe7ea43148f1c69

src/bin/e_plane.c
src/bin/e_plane_renderer.c

index b277ad9f8d7c4b08cf33a1b2c09b902a975ed8ec..35f3e8c8bb6905ddfa1d84b4e779584d189ae534 100644 (file)
@@ -479,10 +479,22 @@ _e_plane_surface_from_client_acquire(E_Plane *plane)
           ERR("fail to e_plane_renderer_surface_queue_clear");
      }
 
-   tsurface = wayland_tbm_server_get_surface(wl_comp_data->tbm.server, buffer->resource);
+   switch (buffer->type)
+     {
+      case E_COMP_WL_BUFFER_TYPE_NATIVE:
+        tsurface = wayland_tbm_server_get_surface(wl_comp_data->tbm.server, buffer->resource);
+        break;
+      case E_COMP_WL_BUFFER_TYPE_TBM:
+        tsurface = buffer->tbm_surface;
+        break;
+      default:
+        ERR("not supported buffer type:%d", buffer->type);
+        break;
+     }
+
    if (!tsurface)
      {
-        ERR("fail to wayland_tbm_server_get_surface");
+        ERR("fail to get tsurface buffer type:%d", buffer->type);
         return NULL;
      }
 
index b068d7908a2f5f2677148e3c24adc6d0d2565e08..3e8df0121042132649a90831e8737ca0983ffc2b 100644 (file)
@@ -1989,10 +1989,27 @@ e_plane_renderer_client_surface_recieve(E_Plane_Renderer_Client *renderer_client
    buffer = _get_comp_wl_buffer(ec);
    EINA_SAFETY_ON_NULL_RETURN_VAL(buffer, NULL);
 
-   tsurface = wayland_tbm_server_get_surface(wl_comp_data->tbm.server, buffer->resource);
-   EINA_SAFETY_ON_NULL_RETURN_VAL(tsurface, NULL);
+   switch (buffer->type)
+     {
+       case E_COMP_WL_BUFFER_TYPE_NATIVE:
+         tsurface = wayland_tbm_server_get_surface(wl_comp_data->tbm.server, buffer->resource);
+         break;
+       case E_COMP_WL_BUFFER_TYPE_TBM:
+         tsurface = buffer->tbm_surface;
+         break;
+       default:
+         ERR("not supported buffer type:%d", buffer->type);
+         break;
+     }
+
+   if (!tsurface)
+     {
+        ERR("fail to get tsurface buffer type:%d", buffer->type);
+        return NULL;
+     }
 
-   flags = wayland_tbm_server_get_buffer_flags(wl_comp_data->tbm.server, buffer->resource);
+   if (buffer->resource)
+     flags = wayland_tbm_server_get_buffer_flags(wl_comp_data->tbm.server, buffer->resource);
 
    if (renderer_trace_debug)
      ELOGF("E_PLANE_RENDERER", "Receive Renderer(%p)        tsurface(%p) tqueue(%p) wl_buffer(%p) flags(%d)",