e_plane: added e_plane_offscreen_commit 53/141653/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 1 Aug 2017 07:56:31 +0000 (16:56 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Tue, 1 Aug 2017 08:14:47 +0000 (17:14 +0900)
Change-Id: I17dac6cfaec3b1528eed9128c1acbf14c9e89f92

src/bin/e_plane.c
src/bin/e_plane.h

index f9f210e9c3c32b514e063b592b74c5f0d8f4bfe3..d6c18172b3bfc3c7499ee0bf50ed181a1e854400 100644 (file)
@@ -1387,6 +1387,35 @@ _e_plane_fb_target_change_check(E_Plane *plane)
    return;
 }
 
+EINTERN Eina_Bool
+e_plane_offscreen_commit(E_Plane *plane)
+{
+   E_Plane_Commit_Data *data = NULL;
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(plane, EINA_FALSE);
+
+   if (plane->unset_commit) return EINA_TRUE;
+
+   data = e_plane_commit_data_aquire(plane);
+
+   if (!data) return EINA_TRUE;
+
+   _e_plane_fb_target_change_check(plane);
+
+   if (plane_trace_debug)
+     ELOGF("E_PLANE", "Commit  Plane(%p) zpos(%d)   tsurface(%p) tqueue(%p) wl_buffer(%p) data(%p) Offscreen",
+           NULL, NULL, plane, plane->zpos, data->tsurface, plane->renderer ? plane->renderer->tqueue : NULL,
+           data->buffer_ref.buffer ? data->buffer_ref.buffer->resource : NULL, data);
+
+   e_plane_commit_data_release(data);
+
+   /* send frame event enlightenment doesn't send frame event in nocomp */
+   if (plane->ec)
+     e_pixmap_image_clear(plane->ec->pixmap, 1);
+
+   return EINA_TRUE;
+}
+
 EINTERN Eina_Bool
 e_plane_commit(E_Plane *plane)
 {
index 1277dc83c1073f73f40a7203d5c345b73d35fe83..8b160b38e7bea88360bf63fd6cfd45020a14bc35 100644 (file)
@@ -156,6 +156,7 @@ EINTERN void                 e_plane_reserved_set(E_Plane *plane, Eina_Bool set)
 EINTERN void                 e_plane_hwc_trace_debug(Eina_Bool onoff);
 EINTERN Eina_Bool            e_plane_render(E_Plane *plane);
 EINTERN Eina_Bool            e_plane_commit(E_Plane *plane);
+EINTERN Eina_Bool            e_plane_offscreen_commit(E_Plane *plane);
 EINTERN void                 e_plane_show_state(E_Plane *plane);
 EINTERN Eina_Bool            e_plane_is_unset_candidate(E_Plane *plane);
 EINTERN Eina_Bool            e_plane_is_unset_try(E_Plane *plane);