1 #include "efl_canvas_surface.h"
2 
3 #define MY_CLASS EFL_CANVAS_SURFACE_TBM_CLASS
4 
5 typedef struct _Efl_Canvas_Surface_Tbm_Data
6 {
7 } Efl_Canvas_Surface_Tbm_Data;
8 
9 EOLIAN static Eo *
_efl_canvas_surface_tbm_efl_object_constructor(Eo * eo,Efl_Canvas_Surface_Tbm_Data * pd EINA_UNUSED)10 _efl_canvas_surface_tbm_efl_object_constructor(Eo *eo, Efl_Canvas_Surface_Tbm_Data *pd EINA_UNUSED)
11 {
12    Evas_Object_Protected_Data *obj;
13    Efl_Canvas_Surface_Data *sd;
14 
15    eo = efl_constructor(efl_super(eo, MY_CLASS));
16    obj = efl_data_scope_get(eo, EFL_CANVAS_OBJECT_CLASS);
17    if (!obj) return NULL;
18 
19    if (!ENFN->image_native_init(ENC, EVAS_NATIVE_SURFACE_TBM))
20      {
21         ERR("TBM is not supported on this platform");
22         return NULL;
23      }
24 
25    sd = efl_data_scope_get(eo, EFL_CANVAS_SURFACE_CLASS);
26    sd->surf.type = EVAS_NATIVE_SURFACE_TBM;
27    return eo;
28 }
29 
30 EOLIAN static void
_efl_canvas_surface_tbm_efl_object_destructor(Eo * eo,Efl_Canvas_Surface_Tbm_Data * pd EINA_UNUSED)31 _efl_canvas_surface_tbm_efl_object_destructor(Eo *eo, Efl_Canvas_Surface_Tbm_Data *pd EINA_UNUSED)
32 {
33    Evas_Object_Protected_Data *obj;
34 
35    obj = efl_data_scope_get(eo, EFL_CANVAS_OBJECT_CLASS);
36 
37    ENFN->image_native_shutdown(ENC, EVAS_NATIVE_SURFACE_TBM);
38    efl_destructor(eo);
39 }
40 
41 EOLIAN static Eina_Bool
_efl_canvas_surface_tbm_efl_canvas_surface_native_buffer_set(Eo * eo,Efl_Canvas_Surface_Tbm_Data * pd EINA_UNUSED,void * buffer)42 _efl_canvas_surface_tbm_efl_canvas_surface_native_buffer_set(Eo *eo, Efl_Canvas_Surface_Tbm_Data *pd EINA_UNUSED, void *buffer)
43 {
44    Efl_Canvas_Surface_Data *sd = efl_data_scope_get(eo, EFL_CANVAS_SURFACE_CLASS);
45 
46    sd->surf.data.tbm.buffer = buffer;
47    if (!_evas_image_native_surface_set(eo, &sd->surf))
48      {
49         ERR("failed to set native buffer");
50         sd->buffer = NULL;
51         return EINA_FALSE;
52      }
53    sd->buffer = buffer;
54    return EINA_TRUE;
55 }
56 
57 #include "efl_canvas_surface_tbm.eo.c"
58