make examples, Your Majesty!

On Wed, 04 Oct 2017 21:48:52 -0700
Cedric BAIL <[email protected]> wrote:

> cedric pushed a commit to branch master.
> 
> http://git.enlightenment.org/core/efl.git/commit/?id=a6dcaa0f9a6f8873ccb23db75b7e3065ddb06f03
> 
> commit a6dcaa0f9a6f8873ccb23db75b7e3065ddb06f03
> Author: Cedric Bail <[email protected]>
> Date:   Wed Oct 4 21:32:22 2017 -0700
> 
>     evas: remove use of engine image_load from Evas.Canvas3D.Texture.
> ---
>  src/lib/edje/edje_calc.c                     |  2 +-
>  src/lib/evas/canvas/evas_canvas3d_texture.c  | 23
> ++++++++++++++++++----- src/lib/evas/canvas/evas_canvas3d_texture.eo
> | 18 +++++------------- src/lib/evas/include/evas_private.h
> |  3 +++ 4 files changed, 27 insertions(+), 19 deletions(-)
> 
> diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
> index 3902ac4c2e..fc71bad49a 100644
> --- a/src/lib/edje/edje_calc.c
> +++ b/src/lib/edje/edje_calc.c
> @@ -5456,7 +5456,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep,
> int flags, Edje_Calc_Params *sta proxy =
> ed->file->image_dir->entries[pd_mesh_node->mesh_node.texture.id].entry;
> if (proxy) {
> -
> evas_canvas3d_texture_file_set(texture, eina_stringshare_add(proxy),
> NULL);
> +                               efl_file_mmap_set(texture,
> ed->file->f, proxy); evas_canvas3d_texture_filter_set(texture,
> pd_mesh_node->mesh_node.texture.filter1,
> pd_mesh_node->mesh_node.texture.filter2);
> evas_canvas3d_texture_wrap_set(texture,
> pd_mesh_node->mesh_node.texture.wrap1,
> pd_mesh_node->mesh_node.texture.wrap2); } diff --git
> a/src/lib/evas/canvas/evas_canvas3d_texture.c
> b/src/lib/evas/canvas/evas_canvas3d_texture.c index
> 6471ddafbd..00cef85524 100644 ---
> a/src/lib/evas/canvas/evas_canvas3d_texture.c +++
> b/src/lib/evas/canvas/evas_canvas3d_texture.c @@ -332,8 +332,9 @@
> _evas_canvas3d_texture_efl_object_constructor(Eo *obj,
> Evas_Canvas3D_Texture_Dat } EOLIAN static void
> -_evas_canvas3d_texture_efl_object_destructor(Eo *obj,
> Evas_Canvas3D_Texture_Data *pd  EINA_UNUSED)
> +_evas_canvas3d_texture_efl_object_destructor(Eo *obj,
> Evas_Canvas3D_Texture_Data *pd) {
> +   eina_file_close(pd->f);
>     _texture_fini(obj);
>     efl_destructor(efl_super(obj, MY_CLASS));
>  }
> @@ -372,7 +373,14 @@ _evas_canvas3d_texture_data_set(Eo *obj,
> Evas_Canvas3D_Texture_Data *pd, }
>  
>  EOLIAN static void
> -_evas_canvas3d_texture_file_set(Eo *obj, Evas_Canvas3D_Texture_Data
> *pd, const char *file, const char *key)
> +_evas_canvas3d_texture_efl_file_mmap_get(Eo *obj EINA_UNUSED,
> Evas_Canvas3D_Texture_Data *pd, const Eina_File **f, const char
> **key) +{
> +   if (f) *f = pd->f;
> +   if (key) *key = pd->key;
> +}
> +
> +EOLIAN static Eina_Bool
> +_evas_canvas3d_texture_efl_file_mmap_set(Eo *obj,
> Evas_Canvas3D_Texture_Data *pd, const Eina_File *f, const char *key) {
>  
>     Evas_Image_Load_Opts lo;
> @@ -387,12 +395,12 @@ _evas_canvas3d_texture_file_set(Eo *obj,
> Evas_Canvas3D_Texture_Data *pd, const c pd->engine_data =
> e->engine.func->texture_new(_evas_engine_context(e),
> pd->atlas_enable); memset(&lo, 0x0, sizeof(Evas_Image_Load_Opts));
> -   image = e->engine.func->image_load(_evas_engine_context(e),
> -                                      file, key, &load_error, &lo);
> +   image = e->engine.func->image_mmap(_evas_engine_context(e),
> +                                      (Eina_File *) f, key,
> &load_error, &lo); if (!image)
>       {
>          ERR("Can't load image from file");
> -        return;
> +        return EINA_FALSE;
>       }
>  
>     if (e->engine.func->texture_image_set)
> @@ -401,7 +409,12 @@ _evas_canvas3d_texture_file_set(Eo *obj,
> Evas_Canvas3D_Texture_Data *pd, const c image);
>  
>     e->engine.func->image_free(_evas_engine_context(e), image);
> +
> +   pd->f = eina_file_dup(f);
> +   pd->key = eina_stringshare_add(key);
>     evas_canvas3d_object_change(obj,
> EVAS_CANVAS3D_STATE_TEXTURE_DATA, NULL); +
> +   return EINA_TRUE;
>  }
>  
>  EAPI void
> diff --git a/src/lib/evas/canvas/evas_canvas3d_texture.eo
> b/src/lib/evas/canvas/evas_canvas3d_texture.eo index
> 67cf5dcaba..c6ab979257 100644 ---
> a/src/lib/evas/canvas/evas_canvas3d_texture.eo +++
> b/src/lib/evas/canvas/evas_canvas3d_texture.eo @@ -1,6 +1,6 @@
>  type @extern Evas_Colorspace: int; [[Evas colorspace type]] /*
> FIXME: Need to get emile migrated. */ 
> -class Evas.Canvas3D.Texture (Evas.Canvas3D.Object)
> +class Evas.Canvas3D.Texture (Evas.Canvas3D.Object, Efl.File)
>  {
>     [[Evas 3d canvas texture class]]
>     data : Evas_Canvas3D_Texture_Data;
> @@ -46,7 +46,7 @@ class Evas.Canvas3D.Texture (Evas.Canvas3D.Object)
>        data_set {
>           [[Set the data of the given texture.
>  
> -           See also @.file_set.
> +           See also @Efl.File.file.set.
>           ]]
>  
>           params {
> @@ -57,15 +57,6 @@ class Evas.Canvas3D.Texture (Evas.Canvas3D.Object)
>           }
>        }
>  
> -      file_set {
> -         [[Set the data of the given texture from file.]]
> -
> -         params {
> -            @in file: string; [[Path to the image file.]]
> -            @in key: string; [[Key in the image file.]]
> -         }
> -      }
> -
>        source_set {
>           [[Set the data of the given texture from an evas object.
>  
> @@ -89,7 +80,7 @@ class Evas.Canvas3D.Texture (Evas.Canvas3D.Object)
>             has source object. Otherwise, the color format of the
> data will be returned.
>  
> -           See also @.data_set, @.file_set, @.source_set.
> +           See also @.data_set, @Efl.File.file.set, @.source_set.
>           ]]
>           return: Evas_Colorspace; [[Color format of the given
> texture]] }
> @@ -101,7 +92,7 @@ class Evas.Canvas3D.Texture (Evas.Canvas3D.Object)
>             will be returned. Otherwise, the size of the data (or
> image file) will be returned.
>  
> -           See also @.data_set, @.file_set, @.source_set.
> +           See also @.data_set, @Efl.File.file.set, @.source_set.
>           ]]
>           params {
>              @out w: int; [[Pointer to receive the width of the
> texture size.]] @@ -164,5 +155,6 @@ class Evas.Canvas3D.Texture
> (Evas.Canvas3D.Object) Efl.Object.destructor;
>        Evas.Canvas3D.Object.update_notify;
>        Evas.Canvas3D.Object.change_notify;
> +      Efl.File.mmap { set; get; }
>     }
>  }
> diff --git a/src/lib/evas/include/evas_private.h
> b/src/lib/evas/include/evas_private.h index 71fd28f2cd..f3552a0bd6
> 100644 --- a/src/lib/evas/include/evas_private.h
> +++ b/src/lib/evas/include/evas_private.h
> @@ -433,6 +433,9 @@ struct _Evas_Canvas3D_Texture
>     /* Engine-side object. */
>     void             *engine_data;
>  
> +   Eina_File        *f;
> +   const char       *key;
> +
>     /*Use atlases, @EINA_TRUE by default*/
>     Eina_Bool        atlas_enable :1;
>  };
> 


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to