forked from enlightenment/efl
evas: remove use of engine image_load from Evas.Canvas3D.Texture.
This commit is contained in:
parent
c8c4572d70
commit
a6dcaa0f9a
|
@ -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;
|
proxy = ed->file->image_dir->entries[pd_mesh_node->mesh_node.texture.id].entry;
|
||||||
if (proxy)
|
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_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);
|
evas_canvas3d_texture_wrap_set(texture, pd_mesh_node->mesh_node.texture.wrap1, pd_mesh_node->mesh_node.texture.wrap2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -332,8 +332,9 @@ _evas_canvas3d_texture_efl_object_constructor(Eo *obj, Evas_Canvas3D_Texture_Dat
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
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);
|
_texture_fini(obj);
|
||||||
efl_destructor(efl_super(obj, MY_CLASS));
|
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
|
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;
|
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);
|
pd->engine_data = e->engine.func->texture_new(_evas_engine_context(e), pd->atlas_enable);
|
||||||
|
|
||||||
memset(&lo, 0x0, sizeof(Evas_Image_Load_Opts));
|
memset(&lo, 0x0, sizeof(Evas_Image_Load_Opts));
|
||||||
image = e->engine.func->image_load(_evas_engine_context(e),
|
image = e->engine.func->image_mmap(_evas_engine_context(e),
|
||||||
file, key, &load_error, &lo);
|
(Eina_File *) f, key, &load_error, &lo);
|
||||||
if (!image)
|
if (!image)
|
||||||
{
|
{
|
||||||
ERR("Can't load image from file");
|
ERR("Can't load image from file");
|
||||||
return;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e->engine.func->texture_image_set)
|
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);
|
image);
|
||||||
|
|
||||||
e->engine.func->image_free(_evas_engine_context(e), 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);
|
evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_TEXTURE_DATA, NULL);
|
||||||
|
|
||||||
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
type @extern Evas_Colorspace: int; [[Evas colorspace type]] /* FIXME: Need to get emile migrated. */
|
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]]
|
[[Evas 3d canvas texture class]]
|
||||||
data : Evas_Canvas3D_Texture_Data;
|
data : Evas_Canvas3D_Texture_Data;
|
||||||
|
@ -46,7 +46,7 @@ class Evas.Canvas3D.Texture (Evas.Canvas3D.Object)
|
||||||
data_set {
|
data_set {
|
||||||
[[Set the data of the given texture.
|
[[Set the data of the given texture.
|
||||||
|
|
||||||
See also @.file_set.
|
See also @Efl.File.file.set.
|
||||||
]]
|
]]
|
||||||
|
|
||||||
params {
|
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 {
|
source_set {
|
||||||
[[Set the data of the given texture from an evas object.
|
[[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
|
has source object. Otherwise, the color format of the data will
|
||||||
be returned.
|
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]]
|
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. Otherwise, the size of the data (or image file)
|
||||||
will be returned.
|
will be returned.
|
||||||
|
|
||||||
See also @.data_set, @.file_set, @.source_set.
|
See also @.data_set, @Efl.File.file.set, @.source_set.
|
||||||
]]
|
]]
|
||||||
params {
|
params {
|
||||||
@out w: int; [[Pointer to receive the width of the texture size.]]
|
@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;
|
Efl.Object.destructor;
|
||||||
Evas.Canvas3D.Object.update_notify;
|
Evas.Canvas3D.Object.update_notify;
|
||||||
Evas.Canvas3D.Object.change_notify;
|
Evas.Canvas3D.Object.change_notify;
|
||||||
|
Efl.File.mmap { set; get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -433,6 +433,9 @@ struct _Evas_Canvas3D_Texture
|
||||||
/* Engine-side object. */
|
/* Engine-side object. */
|
||||||
void *engine_data;
|
void *engine_data;
|
||||||
|
|
||||||
|
Eina_File *f;
|
||||||
|
const char *key;
|
||||||
|
|
||||||
/*Use atlases, @EINA_TRUE by default*/
|
/*Use atlases, @EINA_TRUE by default*/
|
||||||
Eina_Bool atlas_enable :1;
|
Eina_Bool atlas_enable :1;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue