forked from enlightenment/efl
evas: fix initialisation and shutdown of eet and eina by mesh loader and saver.
This commit is contained in:
parent
522b82b026
commit
005375176d
|
@ -208,6 +208,4 @@ _evas_canvas3d_eet_file_free(Evas_Canvas3D_File_Eet* eet_file)
|
||||||
}
|
}
|
||||||
|
|
||||||
_evas_canvas3d_eet_descriptor_shutdown();
|
_evas_canvas3d_eet_descriptor_shutdown();
|
||||||
eet_shutdown();
|
|
||||||
eina_shutdown();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include "evas_common_private.h"
|
#include "evas_common_private.h"
|
||||||
#include "evas_private.h"
|
#include "evas_private.h"
|
||||||
|
|
||||||
void
|
static void
|
||||||
_set_geometry_to_mesh_from_eet_file(Evas_Canvas3D_Mesh *mesh,
|
_set_geometry_to_mesh_from_eet_file(Evas_Canvas3D_Mesh *mesh,
|
||||||
Evas_Canvas3D_Mesh_Eet *eet_mesh)
|
Evas_Canvas3D_Mesh_Eet *eet_mesh)
|
||||||
{
|
{
|
||||||
|
@ -59,7 +59,7 @@ _set_geometry_to_mesh_from_eet_file(Evas_Canvas3D_Mesh *mesh,
|
||||||
evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD);
|
evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
_set_material_to_mesh_from_eet_file(Evas_Canvas3D_Mesh *mesh,
|
_set_material_to_mesh_from_eet_file(Evas_Canvas3D_Mesh *mesh,
|
||||||
Evas_Canvas3D_Mesh_Eet *eet_mesh)
|
Evas_Canvas3D_Mesh_Eet *eet_mesh)
|
||||||
{
|
{
|
||||||
|
@ -86,6 +86,7 @@ evas_model_load_file_eet(Evas_Canvas3D_Mesh *mesh, Eina_File *file)
|
||||||
Evas_Canvas3D_File_Eet* eet_file;
|
Evas_Canvas3D_File_Eet* eet_file;
|
||||||
Eet_Data_Descriptor *_file_descriptor;
|
Eet_Data_Descriptor *_file_descriptor;
|
||||||
|
|
||||||
|
eet_init();
|
||||||
|
|
||||||
_file_descriptor = _evas_canvas3d_eet_file_get();
|
_file_descriptor = _evas_canvas3d_eet_file_get();
|
||||||
ef = eet_mmap(file);
|
ef = eet_mmap(file);
|
||||||
|
@ -98,12 +99,13 @@ evas_model_load_file_eet(Evas_Canvas3D_Mesh *mesh, Eina_File *file)
|
||||||
if (!eet_file || !eet_file->mesh || !eet_file->header)
|
if (!eet_file || !eet_file->mesh || !eet_file->header)
|
||||||
{
|
{
|
||||||
ERR("Failed to read model file");
|
ERR("Failed to read model file");
|
||||||
_evas_canvas3d_eet_file_free(eet_file);
|
goto on_error;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_set_geometry_to_mesh_from_eet_file(mesh, eet_file->mesh);
|
_set_geometry_to_mesh_from_eet_file(mesh, eet_file->mesh);
|
||||||
_set_material_to_mesh_from_eet_file(mesh, eet_file->mesh);
|
_set_material_to_mesh_from_eet_file(mesh, eet_file->mesh);
|
||||||
|
|
||||||
|
on_error:
|
||||||
_evas_canvas3d_eet_file_free(eet_file);
|
_evas_canvas3d_eet_file_free(eet_file);
|
||||||
|
eet_shutdown();
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#define COMPONENT_OF_DEFAULT_GREY_COLOR 0.3
|
#define COMPONENT_OF_DEFAULT_GREY_COLOR 0.3
|
||||||
#define TRANSPARENCY_OF_DEFAULT_GREY_COLOR 0.5
|
#define TRANSPARENCY_OF_DEFAULT_GREY_COLOR 0.5
|
||||||
|
|
||||||
void
|
static void
|
||||||
_set_geometry_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Data *mesh,
|
_set_geometry_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Data *mesh,
|
||||||
Evas_Canvas3D_Mesh_Eet *eet_mesh,
|
Evas_Canvas3D_Mesh_Eet *eet_mesh,
|
||||||
Evas_Canvas3D_Header_Eet *eet_header,
|
Evas_Canvas3D_Header_Eet *eet_header,
|
||||||
|
@ -64,7 +64,7 @@ _set_geometry_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Data *mesh,
|
||||||
eet_header->geometries = geometries;
|
eet_header->geometries = geometries;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
_set_material_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Eet *eet_mesh,
|
_set_material_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Eet *eet_mesh,
|
||||||
Evas_Canvas3D_Header_Eet *eet_header,
|
Evas_Canvas3D_Header_Eet *eet_header,
|
||||||
Evas_Canvas3D_Mesh_Frame *f)
|
Evas_Canvas3D_Mesh_Frame *f)
|
||||||
|
@ -125,7 +125,7 @@ _set_material_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Eet *eet_mesh,
|
||||||
eet_header->materials = materials;
|
eet_header->materials = materials;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
_set_frame_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Eet *eet_mesh)
|
_set_frame_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Eet *eet_mesh)
|
||||||
{
|
{
|
||||||
eet_mesh->frames = malloc(sizeof(Evas_Canvas3D_Frame_Eet));
|
eet_mesh->frames = malloc(sizeof(Evas_Canvas3D_Frame_Eet));
|
||||||
|
@ -147,12 +147,16 @@ evas_model_save_file_eet(const Evas_Canvas3D_Mesh *mesh,
|
||||||
Evas_Canvas3D_Mesh_Frame *f)
|
Evas_Canvas3D_Mesh_Frame *f)
|
||||||
{
|
{
|
||||||
Evas_Canvas3D_Mesh_Data *pd = eo_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
|
Evas_Canvas3D_Mesh_Data *pd = eo_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
|
||||||
Eet_File *ef = eet_open(file, EET_FILE_MODE_WRITE);
|
Eet_File *ef;
|
||||||
Evas_Canvas3D_Mesh_Eet* eet_mesh = malloc(sizeof(Evas_Canvas3D_Mesh_Eet));
|
Evas_Canvas3D_Mesh_Eet* eet_mesh = malloc(sizeof(Evas_Canvas3D_Mesh_Eet));
|
||||||
Evas_Canvas3D_Header_Eet* eet_header = malloc(sizeof(Evas_Canvas3D_Header_Eet));
|
Evas_Canvas3D_Header_Eet* eet_header = malloc(sizeof(Evas_Canvas3D_Header_Eet));
|
||||||
Eet_Data_Descriptor *_file_descriptor;
|
Eet_Data_Descriptor *_file_descriptor;
|
||||||
Evas_Canvas3D_File_Eet *eet_file;
|
Evas_Canvas3D_File_Eet *eet_file;
|
||||||
|
|
||||||
|
eet_init();
|
||||||
|
|
||||||
|
ef = eet_open(file, EET_FILE_MODE_WRITE);
|
||||||
|
|
||||||
_file_descriptor = _evas_canvas3d_eet_file_get();
|
_file_descriptor = _evas_canvas3d_eet_file_get();
|
||||||
|
|
||||||
eet_file = _evas_canvas3d_eet_file_new();
|
eet_file = _evas_canvas3d_eet_file_new();
|
||||||
|
@ -174,8 +178,8 @@ evas_model_save_file_eet(const Evas_Canvas3D_Mesh *mesh,
|
||||||
ERR("Opening of file is failed.");
|
ERR("Opening of file is failed.");
|
||||||
free(eet_mesh);
|
free(eet_mesh);
|
||||||
free(eet_header);
|
free(eet_header);
|
||||||
_evas_canvas3d_eet_file_free(eet_file);
|
|
||||||
return;
|
goto on_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
eet_file->mesh = eet_mesh;
|
eet_file->mesh = eet_mesh;
|
||||||
|
@ -188,5 +192,8 @@ evas_model_save_file_eet(const Evas_Canvas3D_Mesh *mesh,
|
||||||
EINA_TRUE);
|
EINA_TRUE);
|
||||||
eet_close(ef);
|
eet_close(ef);
|
||||||
|
|
||||||
|
on_error:
|
||||||
_evas_canvas3d_eet_file_free(eet_file);
|
_evas_canvas3d_eet_file_free(eet_file);
|
||||||
|
|
||||||
|
eet_shutdown();
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,4 +37,3 @@ _setup_evas()
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue