fix -dump_topvwins operation error
authorBoram Park <boram1288.park@samsung.com>
Tue, 12 Jan 2016 03:28:55 +0000 (12:28 +0900)
committerSeunghun Lee <shiin.lee@samsung.com>
Thu, 21 Jan 2016 07:20:12 +0000 (16:20 +0900)
   Currently DDK uses wl_tbm_buffer

Change-Id: Icfea434e5743d30407f3230539203cdb20158771

src/bin/e_info_server.c

index d617e615a5b9e2f2a366e133d08bf6b07e09516f..5402ec10edece0aa76eb03580d41f77b0376de2f 100644 (file)
@@ -1,5 +1,9 @@
 #include "e.h"
 #include <tbm_bufmgr.h>
+#include <tbm_surface.h>
+#ifdef HAVE_WAYLAND_ONLY
+#include <wayland-tbm-server.h>
+#endif
 
 #define BUS "org.enlightenment.wm"
 #define PATH "/org/enlightenment/wm"
@@ -15,20 +19,6 @@ typedef struct _E_Info_Server
 
 static E_Info_Server e_info_server;
 
-struct wl_drm;
-
-struct wl_drm_buffer
-{
-   struct wl_resource *resource;
-   struct wl_drm *drm;
-   int32_t width, height;
-   uint32_t format;
-   const void *driver_format;
-   int32_t offset[3];
-   int32_t stride[3];
-   void *driver_buffer;
-};
-
 #define VALUE_TYPE_FOR_TOPVWINS "uuisiiiiibbiibbs"
 
 static void
@@ -429,10 +419,15 @@ _e_info_server_cb_topvwins_dump(const Eldbus_Service_Interface *iface EINA_UNUSE
           }
         else if (buffer->type == E_COMP_WL_BUFFER_TYPE_NATIVE)
           {
-             struct wl_drm_buffer *drm_buffer = wl_resource_get_user_data(buffer->resource);
-             data = tbm_bo_map((tbm_bo)drm_buffer->driver_buffer, TBM_DEVICE_CPU, TBM_OPTION_READ).ptr;
-             w = drm_buffer->stride[0]/4;
-             h = drm_buffer->height;
+             tbm_surface_info_s surface_info;
+             tbm_surface_h tbm_surface = wayland_tbm_server_get_surface(NULL, buffer->resource);
+
+             memset(&surface_info, 0, sizeof(tbm_surface_info_s));
+             tbm_surface_map(tbm_surface, TBM_SURF_OPTION_READ, &surface_info);
+
+             data = surface_info.planes[0].ptr;
+             w = surface_info.planes[0].stride/4;
+             h = surface_info.height;
           }
         else
           {
@@ -459,8 +454,8 @@ err:
 #ifdef HAVE_WAYLAND_ONLY
         if (data && buffer->type == E_COMP_WL_BUFFER_TYPE_NATIVE)
           {
-             struct wl_drm_buffer *drm_buffer = wl_resource_get_user_data(buffer->resource);
-             tbm_bo_unmap((tbm_bo)(drm_buffer->driver_buffer));
+             tbm_surface_h tbm_surface = wayland_tbm_server_get_surface(NULL, buffer->resource);
+             tbm_surface_unmap(tbm_surface);
           }
 #endif