evas: start working on efl_canvas_output.
authorCedric BAIL <cedric@osg.samsung.com>
Mon, 12 Sep 2016 23:18:08 +0000 (16:18 -0700)
committerCedric BAIL <cedric@osg.samsung.com>
Mon, 12 Sep 2016 23:19:10 +0000 (16:19 -0700)
This should when done enable the possibility for multi screen in wayland
along with remote display, wireless display and screencasting.

src/Makefile_Evas.am
src/lib/evas/canvas/efl_canvas_output.eo [moved from src/lib/evas/canvas/evas_out.eo with 77% similarity]
src/lib/evas/canvas/evas_main.c
src/lib/evas/canvas/evas_out.c
src/lib/evas/include/evas_private.h

index f313861..10a6e64 100644 (file)
@@ -49,6 +49,7 @@ evas_eolian_pub_files = \
        lib/evas/canvas/efl_input_pointer.eo \
        lib/evas/canvas/efl_input_hold.eo \
        lib/evas/canvas/efl_gfx_map.eo \
+       lib/evas/canvas/efl_canvas_output.eo \
        $(NULL)
 
 evas_eolian_legacy_files = \
@@ -56,7 +57,6 @@ evas_eolian_legacy_files = \
        lib/evas/canvas/evas_table.eo \
        lib/evas/canvas/evas_grid.eo \
        lib/evas/canvas/evas_box.eo\
-       lib/evas/canvas/evas_out.eo \
        lib/evas/canvas/evas_text.eo \
        lib/evas/canvas/evas_textgrid.eo \
        lib/evas/canvas/evas_image.eo \
similarity index 77%
rename from src/lib/evas/canvas/evas_out.eo
rename to src/lib/evas/canvas/efl_canvas_output.eo
index 44e00a4..31316ed 100644 (file)
@@ -1,9 +1,7 @@
 import evas_types;
 
-class Evas.Out (Efl.Object)
+class Efl.Canvas.Output (Efl.Object)
 {
-   eo_prefix: evas_out;
-   legacy_prefix: evas_output;
    methods {
       @property view {
          set {
@@ -23,6 +21,14 @@ class Evas.Out (Efl.Object)
             h: Evas.Coord;
          }
       }
+      lock {
+         [[Lock this output and will prevent rendering any buffer associated to it.]]
+         return: bool;
+      }
+      unlock {
+         [[Unlock this output and will rendering of this buffer during next call to evas_render.]]
+         return: bool;
+      }
       @property engine_info {
          set {
             [[Sets the engine specific output parameters for a given output.]]
index 8eb3c6e..8d5fa4f 100644 (file)
@@ -305,7 +305,7 @@ _evas_canvas_efl_object_destructor(Eo *eo_e, Evas_Public_Data *e)
    evas_event_callback_all_del(eo_e);
    evas_event_callback_cleanup(eo_e);
 
-   EINA_LIST_FREE(e->outputs, evo) evas_output_del(evo);
+   EINA_LIST_FREE(e->outputs, evo) efl_del(evo);
 
    if (e->engine.func)
      {
index b28ce65..190d093 100644 (file)
@@ -5,26 +5,18 @@
 #include "evas_cs2_private.h"
 #endif
 
-#define MY_CLASS EVAS_OUT_CLASS
-typedef struct _Evas_Out_Data Evas_Out_Data;
-struct _Evas_Out_Data
+#include "efl_canvas_output.eo.h"
+
+#define MY_CLASS EFL_CANVAS_OUTPUT_CLASS
+typedef struct _Efl_Canvas_Output_Data Efl_Canvas_Output_Data;
+struct _Efl_Canvas_Output_Data
 {
    void *info;/*, *context, *output;*/
    Evas_Coord x, y, w, h;
 };
 
-EAPI Evas_Out *
-evas_out_add(Evas *e)
-{
-   MAGIC_CHECK(e, Evas, MAGIC_EVAS);
-   return NULL;
-   MAGIC_CHECK_END();
-   Evas_Object *eo_obj = efl_add(MY_CLASS, e);
-   return eo_obj;
-}
-
 EOLIAN static Eo *
-_evas_out_efl_object_constructor(Eo *eo_obj, Evas_Out_Data *eo_dat)
+_efl_canvas_output_efl_object_constructor(Eo *eo_obj, Efl_Canvas_Output_Data *eo_dat)
 {
    Eo *eo_parent = NULL;
    Evas_Public_Data *e;
@@ -46,13 +38,13 @@ _evas_out_efl_object_constructor(Eo *eo_obj, Evas_Out_Data *eo_dat)
 }
 
 EAPI void
-evas_output_del(Evas_Out *evo)
+efl_canvas_outputput_del(Efl_Canvas_Output *evo)
 {
    efl_unref(evo);
 }
 
 EOLIAN static void
-_evas_out_efl_object_destructor(Eo *eo_obj, Evas_Out_Data *eo_dat)
+_efl_canvas_output_efl_object_destructor(Eo *eo_obj, Efl_Canvas_Output_Data *eo_dat)
 {
    Eo *eo_parent = NULL;
    Evas_Public_Data *e;
@@ -70,7 +62,7 @@ _evas_out_efl_object_destructor(Eo *eo_obj, Evas_Out_Data *eo_dat)
 }
 
 EOLIAN static void
-_evas_out_view_set(Eo *eo_e, Evas_Out_Data *eo_dat, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
+_efl_canvas_output_view_set(Eo *eo_e, Efl_Canvas_Output_Data *eo_dat, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
 {
    Eo *eo_parent = NULL;
    Evas_Public_Data *e;
@@ -86,7 +78,7 @@ _evas_out_view_set(Eo *eo_e, Evas_Out_Data *eo_dat, Evas_Coord x, Evas_Coord y,
 }
 
 EOLIAN static void
-_evas_out_view_get(Eo *eo_e EINA_UNUSED, Evas_Out_Data *eo_dat, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
+_efl_canvas_output_view_get(Eo *eo_e EINA_UNUSED, Efl_Canvas_Output_Data *eo_dat, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
 {
    if (x) *x = eo_dat->x;
    if (y) *y = eo_dat->y;
@@ -95,7 +87,7 @@ _evas_out_view_get(Eo *eo_e EINA_UNUSED, Evas_Out_Data *eo_dat, Evas_Coord *x, E
 }
 
 EOLIAN static Eina_Bool
-_evas_out_engine_info_set(Eo *eo_e, Evas_Out_Data *eo_dat, Evas_Engine_Info *info)
+_efl_canvas_output_engine_info_set(Eo *eo_e, Efl_Canvas_Output_Data *eo_dat, Evas_Engine_Info *info)
 {
    Eo *eo_parent = NULL;
    Evas_Public_Data *e;
@@ -105,14 +97,24 @@ _evas_out_engine_info_set(Eo *eo_e, Evas_Out_Data *eo_dat, Evas_Engine_Info *inf
    if (eo_dat->info != info) return EINA_FALSE;
 
    // XXX: handle setting of engine info here
-  
+
    return EINA_TRUE;
 }
 
 EOLIAN static Evas_Engine_Info*
-_evas_out_engine_info_get(Eo *eo_e EINA_UNUSED, Evas_Out_Data *eo_dat)
+_efl_canvas_output_engine_info_get(Eo *eo_e EINA_UNUSED, Efl_Canvas_Output_Data *eo_dat)
 {
    return eo_dat->info;
 }
 
-#include "canvas/evas_out.eo.c"
+static Eina_Bool
+_efl_canvas_output_lock(Eo *obj, Efl_Canvas_Output_Data *pd)
+{
+}
+
+static Eina_Bool
+_efl_canvas_output_unlock(Eo *obj, Efl_Canvas_Output_Data *pd)
+{
+}
+
+#include "canvas/efl_canvas_output.eo.c"
index dfa0488..5a10522 100644 (file)
@@ -52,7 +52,6 @@
 #include "canvas/evas_box.eo.h"
 #include "canvas/evas_table.eo.h"
 #include "canvas/evas_grid.eo.h"
-#include "canvas/evas_out.eo.h"
 
 #define RENDER_METHOD_INVALID            0x00000000