Model_save_load. Step 4. Evas_3D_Mesh_File_Type sank into oblivion. Changing entry point to model_save_load. Changing API in examples.
This commit is contained in:
parent
291291e027
commit
42562b3ddf
|
@ -227,7 +227,7 @@ main(void)
|
|||
material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
|
||||
|
||||
eo_do(mesh,
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_MD2, "sonic.md2", NULL),
|
||||
evas_3d_mesh_file_set("sonic.md2", NULL),
|
||||
evas_3d_mesh_frame_material_set(0, material),
|
||||
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG));
|
||||
|
||||
|
|
|
@ -151,7 +151,7 @@ main(void)
|
|||
material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
|
||||
|
||||
eo_do(mesh,
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_MD2, "sonic.md2", NULL),
|
||||
evas_3d_mesh_file_set("sonic.md2", NULL),
|
||||
evas_3d_mesh_frame_material_set(0, material),
|
||||
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG));
|
||||
|
||||
|
@ -169,11 +169,10 @@ main(void)
|
|||
evas_3d_material_shininess_set(50.0));
|
||||
|
||||
eo_do(mesh,
|
||||
evas_3d_mesh_save(EVAS_3D_MESH_FILE_TYPE_EET,
|
||||
"saved_Sonic_EET.eet", NULL));
|
||||
evas_3d_mesh_save("saved_Sonic_EET.eet", NULL));
|
||||
|
||||
eo_do(mesh2,
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_EET, "saved_Sonic_EET.eet", NULL),
|
||||
evas_3d_mesh_file_set("saved_Sonic_EET.eet", NULL),
|
||||
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG));
|
||||
|
||||
mesh_node = eo_add(EVAS_3D_NODE_CLASS, evas,
|
||||
|
|
|
@ -175,7 +175,7 @@ _mesh_setup_model(Scene_Data *data)
|
|||
evas_3d_material_shininess_set(100.0));
|
||||
|
||||
eo_do(data->mesh_model,
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_MD2, "eagle.md2", NULL),
|
||||
evas_3d_mesh_file_set("eagle.md2", NULL),
|
||||
evas_3d_mesh_frame_material_set(0, data->material_model),
|
||||
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_DIFFUSE));
|
||||
}
|
||||
|
|
|
@ -120,7 +120,7 @@ main(void)
|
|||
material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
|
||||
|
||||
eo_do(mesh,
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_MD2, "sonic.md2", NULL),
|
||||
evas_3d_mesh_file_set("sonic.md2", NULL),
|
||||
evas_3d_mesh_frame_material_set(0, material),
|
||||
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG));
|
||||
|
||||
|
|
|
@ -134,7 +134,7 @@ main(void)
|
|||
material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
|
||||
|
||||
eo_do(mesh,
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_OBJ, "man_mesh.obj", NULL),
|
||||
evas_3d_mesh_file_set("man_mesh.obj", NULL),
|
||||
evas_3d_mesh_frame_material_set(0, material),
|
||||
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG));
|
||||
|
||||
|
@ -159,7 +159,7 @@ main(void)
|
|||
1.0, 1.0, 1.0, 1.0),
|
||||
evas_3d_material_shininess_set(50.0));
|
||||
|
||||
eo_do(mesh, evas_3d_mesh_save(EVAS_3D_MESH_FILE_TYPE_OBJ, "saved_man", NULL));
|
||||
eo_do(mesh, evas_3d_mesh_save("saved_man", NULL));
|
||||
|
||||
mesh_node = eo_add(EVAS_3D_NODE_CLASS, evas,
|
||||
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH));
|
||||
|
|
|
@ -189,16 +189,16 @@ main(void)
|
|||
mesh[i] = eo_add(EVAS_3D_MESH_CLASS, evas);
|
||||
|
||||
eo_do(mesh[i],
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_PLY, path_file[i % 8], NULL),
|
||||
evas_3d_mesh_file_set(path_file[i % 8], NULL),
|
||||
evas_3d_mesh_frame_material_set(0, material),
|
||||
evas_3d_mesh_shade_mode_set(draw_mode[(i % 16) / 8]));
|
||||
|
||||
snprintf(buffer, PATH_MAX, "%s/Saved_%s", folder, file_name[i % 8]);
|
||||
eo_do(mesh[i], evas_3d_mesh_save(EVAS_3D_MESH_FILE_TYPE_PLY, buffer, NULL));
|
||||
eo_do(mesh[i], evas_3d_mesh_save(buffer, NULL));
|
||||
|
||||
if (i > 15)
|
||||
eo_do(mesh[i],
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_PLY, path_file[i % 8], NULL),
|
||||
evas_3d_mesh_file_set(path_file[i % 8], NULL),
|
||||
evas_3d_mesh_frame_material_set(0, material),
|
||||
evas_3d_mesh_shade_mode_set(draw_mode[(i % 16) / 8]));
|
||||
|
||||
|
|
|
@ -219,7 +219,7 @@ main(void)
|
|||
material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
|
||||
|
||||
eo_do(mesh,
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_MD2, "sonic.md2", NULL),
|
||||
evas_3d_mesh_file_set("sonic.md2", NULL),
|
||||
evas_3d_mesh_frame_material_set(0, material),
|
||||
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG));
|
||||
|
||||
|
|
|
@ -841,7 +841,7 @@ _mesh_setup_gun_planet(Scene_Data *data)
|
|||
|
||||
data->mesh_eagle = eo_add(EVAS_3D_MESH_CLASS, evas);
|
||||
eo_do(data->mesh_eagle,
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_OBJ, "shooter/eagle.obj", NULL));
|
||||
evas_3d_mesh_file_set("shooter/eagle.obj", NULL));
|
||||
|
||||
data->material_eagle = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
|
||||
|
||||
|
@ -1295,7 +1295,7 @@ _mesh_setup_warrior(Scene_Data *data, int index)
|
|||
data->mesh_level[index] = eo_add(EVAS_3D_MESH_CLASS, evas);
|
||||
|
||||
eo_do(data->mesh_level[index],
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_MD2, "shooter/warrior.md2", NULL));
|
||||
evas_3d_mesh_file_set("shooter/warrior.md2", NULL));
|
||||
|
||||
data->material_level = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
|
||||
eo_do(data->mesh_level[index],
|
||||
|
@ -1329,7 +1329,7 @@ _mesh_setup_snake(Scene_Data *data)
|
|||
{
|
||||
data->mesh_snake = eo_add(EVAS_3D_MESH_CLASS, evas);
|
||||
eo_do(data->mesh_snake,
|
||||
evas_3d_mesh_file_set(EVAS_3D_MESH_FILE_TYPE_MD2, "shooter/snake.md2", NULL));
|
||||
evas_3d_mesh_file_set("shooter/snake.md2", NULL));
|
||||
|
||||
data->material_snake = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
|
||||
eo_do(data->mesh_snake,
|
||||
|
|
|
@ -720,21 +720,6 @@ typedef enum _Evas_3D_Material_Attrib
|
|||
EVAS_3D_MATERIAL_NORMAL, /**< Normal map term */
|
||||
} Evas_3D_Material_Attrib;
|
||||
|
||||
/**
|
||||
* Mesh file type
|
||||
*
|
||||
* @since 1.10
|
||||
* @ingroup Evas_3D_Types
|
||||
*/
|
||||
typedef enum _Evas_3D_Mesh_File_Type
|
||||
{
|
||||
EVAS_3D_MESH_FILE_TYPE_NONE = 0, /**< Noone from read formats */
|
||||
EVAS_3D_MESH_FILE_TYPE_MD2, /**< Quake's MD2 mesh file format */
|
||||
EVAS_3D_MESH_FILE_TYPE_OBJ, /**< Wavefront OBJ file format */
|
||||
EVAS_3D_MESH_FILE_TYPE_EET, /**< EET - own EFL file format */
|
||||
EVAS_3D_MESH_FILE_TYPE_PLY, /**< Stanford PLY mesh file format */
|
||||
} Evas_3D_Mesh_File_Type;
|
||||
|
||||
#include "canvas/evas_image.eo.h"
|
||||
|
||||
#include "canvas/evas_3d_camera.eo.h"
|
||||
|
|
|
@ -770,18 +770,19 @@ _evas_3d_mesh_fog_enable_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_evas_3d_mesh_file_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Mesh_File_Type type, const char *file, const char *key EINA_UNUSED)
|
||||
_evas_3d_mesh_file_set(Eo *obj, Evas_3D_Mesh_Data *pd,
|
||||
const char *file, const char *key EINA_UNUSED)
|
||||
{
|
||||
_mesh_fini(pd);
|
||||
_mesh_init(pd);
|
||||
|
||||
if (file == NULL) return;
|
||||
|
||||
evas_common_load_model_to_file(obj, file, type);
|
||||
evas_common_load_model_to_file(obj, file);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_evas_3d_mesh_save(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Mesh_File_Type type,
|
||||
_evas_3d_mesh_save(Eo *obj, Evas_3D_Mesh_Data *pd,
|
||||
const char *file, const char *key EINA_UNUSED)
|
||||
{
|
||||
if ((file == NULL) || (obj == NULL) || (pd == NULL)) return;
|
||||
|
@ -794,7 +795,7 @@ _evas_3d_mesh_save(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Mesh_File_Type type,
|
|||
return;
|
||||
}
|
||||
|
||||
evas_common_save_model_to_file(obj, file, f, type);
|
||||
evas_common_save_model_to_file(obj, file, f);
|
||||
}
|
||||
|
||||
static inline void
|
||||
|
|
|
@ -14,7 +14,6 @@ class Evas_3D_Mesh (Evas_3D_Object, Evas.Common_Interface)
|
|||
* @ingroup Evas_3D_Mesh
|
||||
*/
|
||||
params {
|
||||
@in Evas_3D_Mesh_File_Type type; /*@ The type of the mesh file. */
|
||||
@in const(char)* file; /*@ Path to the mesh file. */
|
||||
@in const(char)* key; /*@ Key in the mesh file. */
|
||||
}
|
||||
|
@ -30,7 +29,6 @@ class Evas_3D_Mesh (Evas_3D_Object, Evas.Common_Interface)
|
|||
* @ingroup Evas_3D_Mesh
|
||||
*/
|
||||
params {
|
||||
@in Evas_3D_Mesh_File_Type type; /*@ The type of the mesh file. */
|
||||
@in const(char)* file; /*@ Path to the mesh file. */
|
||||
@in const(char)* key; /*@ Key in the mesh file. */
|
||||
}
|
||||
|
|
|
@ -9,26 +9,26 @@
|
|||
|
||||
|
||||
void
|
||||
evas_common_load_model_to_file(Evas_3D_Mesh *model,
|
||||
const char *file,
|
||||
Evas_3D_Mesh_File_Type type)
|
||||
evas_common_load_model_to_file(Evas_3D_Mesh *model, const char *file)
|
||||
{
|
||||
switch (type)
|
||||
char *p;
|
||||
char *loader = NULL;
|
||||
|
||||
p = strrchr(file, '.');
|
||||
if (p)
|
||||
{
|
||||
case EVAS_3D_MESH_FILE_TYPE_MD2:
|
||||
evas_model_load_file_md2(model, file);
|
||||
break;
|
||||
case EVAS_3D_MESH_FILE_TYPE_OBJ:
|
||||
evas_model_load_file_obj(model, file);
|
||||
break;
|
||||
case EVAS_3D_MESH_FILE_TYPE_EET:
|
||||
evas_model_load_file_eet(model, file);
|
||||
break;
|
||||
case EVAS_3D_MESH_FILE_TYPE_PLY:
|
||||
evas_model_load_file_ply(model, file);
|
||||
break;
|
||||
default:
|
||||
ERR("Invalid mesh file type.");
|
||||
break;
|
||||
p++;
|
||||
#define CHECK_EXTENTION_BY_FILE_NAME(extention) \
|
||||
if (!strcasecmp(p, #extention)) \
|
||||
{ \
|
||||
evas_model_load_file_##extention(model, file); \
|
||||
loader = #extention; \
|
||||
}
|
||||
CHECK_EXTENTION_BY_FILE_NAME(eet)
|
||||
CHECK_EXTENTION_BY_FILE_NAME(md2)
|
||||
CHECK_EXTENTION_BY_FILE_NAME(obj)
|
||||
CHECK_EXTENTION_BY_FILE_NAME(ply)
|
||||
#undef CHECK_EXTENTION_BY_FILE_NAME
|
||||
}
|
||||
if (!loader) ERR("Invalid mesh file type.");
|
||||
}
|
||||
|
|
|
@ -7,26 +7,28 @@
|
|||
#include "evas_common_private.h"
|
||||
#include "evas_private.h"
|
||||
|
||||
|
||||
void
|
||||
evas_common_save_model_to_file(Evas_3D_Mesh *model,
|
||||
const char *file,
|
||||
Evas_3D_Mesh_Frame *f,
|
||||
Evas_3D_Mesh_File_Type type)
|
||||
Evas_3D_Mesh_Frame *f)
|
||||
{
|
||||
switch (type)
|
||||
char *p;
|
||||
char *saver = NULL;
|
||||
|
||||
p = strrchr(file, '.');
|
||||
if (p)
|
||||
{
|
||||
case EVAS_3D_MESH_FILE_TYPE_OBJ:
|
||||
evas_model_save_file_obj(model, file, f);
|
||||
break;
|
||||
case EVAS_3D_MESH_FILE_TYPE_EET:
|
||||
evas_model_save_file_eet(model, file, f);
|
||||
break;
|
||||
case EVAS_3D_MESH_FILE_TYPE_PLY:
|
||||
evas_model_save_file_ply(model, file, f);
|
||||
break;
|
||||
default:
|
||||
ERR("Invalid mesh file type.");
|
||||
break;
|
||||
p++;
|
||||
#define CHECK_EXTENTION_BY_FILE_NAME(extention) \
|
||||
if (!strcasecmp(p, #extention)) \
|
||||
{ \
|
||||
evas_model_save_file_##extention(model, file, f); \
|
||||
saver = #extention; \
|
||||
}
|
||||
CHECK_EXTENTION_BY_FILE_NAME(eet)
|
||||
CHECK_EXTENTION_BY_FILE_NAME(obj)
|
||||
CHECK_EXTENTION_BY_FILE_NAME(ply)
|
||||
#undef CHECK_EXTENTION_BY_FILE_NAME
|
||||
}
|
||||
if (!saver) ERR("Invalid mesh file type.");
|
||||
}
|
||||
|
|
|
@ -1637,8 +1637,8 @@ void _evas_3d_eet_descriptor_shutdown(void);
|
|||
void _evas_3d_eet_file_free(void);
|
||||
|
||||
/* Temporary save/load functions */
|
||||
void evas_common_load_model_to_file(Evas_3D_Mesh *model, const char *file, Evas_3D_Mesh_File_Type type);
|
||||
void evas_common_save_model_to_file(Evas_3D_Mesh *model, const char *file, Evas_3D_Mesh_Frame *f, Evas_3D_Mesh_File_Type type);
|
||||
void evas_common_load_model_to_file(Evas_3D_Mesh *model, const char *file);
|
||||
void evas_common_save_model_to_file(Evas_3D_Mesh *model, const char *file, Evas_3D_Mesh_Frame *f);
|
||||
void evas_model_load_file_eet(Evas_3D_Mesh *mesh, const char *file);
|
||||
void evas_model_load_file_md2(Evas_3D_Mesh *mesh, const char *file);
|
||||
void evas_model_load_file_obj(Evas_3D_Mesh *mesh, const char *file);
|
||||
|
|
Loading…
Reference in New Issue