The Evas_Canvas3D_Mesh structure manages key-frame based mesh animations for geometrical objects like character models, terrain, buildings, and other such visible objects. More...
Macros | |
#define | EVAS_CANVAS3D_MESH_CLASS evas_canvas3d_mesh_class_get() |
Evas 3D canvas mesh class. | |
Functions | |
EOAPI void | evas_canvas3d_mesh_frame_vertex_data_set (Eo *obj, int frame, Evas_Canvas3D_Vertex_Attrib attrib, int stride, const void *data) |
Set the vertex data of the key frame of the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_frame_vertex_data_copy_set (Eo *obj, int frame, Evas_Canvas3D_Vertex_Attrib attrib, int stride, const void *data) |
Set the vertex data of the key frame of the given mesh by copying from a buffer. More... | |
EOAPI void * | evas_canvas3d_mesh_frame_vertex_data_map (Eo *obj, int frame, Evas_Canvas3D_Vertex_Attrib attrib) |
Map the vertex buffer of the key frame of the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_frame_vertex_data_unmap (Eo *obj, int frame, Evas_Canvas3D_Vertex_Attrib attrib) |
Unmap the vertex buffer of the key frame of the given mesh. More... | |
EOAPI int | evas_canvas3d_mesh_frame_vertex_stride_get (const Eo *obj, int frame, Evas_Canvas3D_Vertex_Attrib attrib) |
Get the vertex buffer stride of the key frame of the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_index_data_set (Eo *obj, Evas_Canvas3D_Index_Format format, int count, const void *indices) |
Set the vertex index data of the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_convex_hull_data_get (Eo *obj, int frame, Eina_Inarray *vertex, Eina_Inarray *index) |
Get the vertex and index data of convex hull around the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_index_data_copy_set (Eo *obj, Evas_Canvas3D_Index_Format format, int count, const void *indices) |
Set the vertex index data of the given mesh by copying from a buffer. More... | |
EOAPI Evas_Canvas3D_Index_Format | evas_canvas3d_mesh_index_format_get (const Eo *obj) |
Get the format of the index data of the given mesh. More... | |
EOAPI int | evas_canvas3d_mesh_index_count_get (const Eo *obj) |
Get the count of the index data of the given mesh. More... | |
EOAPI void * | evas_canvas3d_mesh_index_data_map (Eo *obj) |
Map the index buffer of the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_index_data_unmap (Eo *obj) |
Unmap the index buffer of the given mesh. More... | |
EOAPI Eina_Bool | evas_canvas3d_mesh_frame_exist (Eo *obj, int frame) |
Returns true if frame was added and false in other case. More... | |
EOAPI void | evas_canvas3d_mesh_frame_add (Eo *obj, int frame) |
Add a key frame to the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_frame_del (Eo *obj, int frame) |
Delete a key frame from the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_fog_color_set (Eo *obj, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) |
Set the fog color and density for the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_fog_color_get (Eo *obj, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a) |
Set the fog color and density for the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_blending_func_set (Eo *obj, Evas_Canvas3D_Blend_Func sfactor, Evas_Canvas3D_Blend_Func dfactor) |
Set the blending function for given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_blending_func_get (Eo *obj, Evas_Canvas3D_Blend_Func *sfactor, Evas_Canvas3D_Blend_Func *dfactor) |
Get blending function for given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_from_primitive_set (Eo *obj, int frame, Evas_Canvas3D_Primitive *primitive) |
Set the data of given mesh frame from the given primitive. More... | |
EOAPI void | evas_canvas3d_mesh_shader_mode_set (Eo *obj, Evas_Canvas3D_Shader_Mode mode) |
Set the shader mode of the given mesh. More... | |
EOAPI Evas_Canvas3D_Shader_Mode | evas_canvas3d_mesh_shader_mode_get (const Eo *obj) |
Set the shader mode of the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_color_pick_enable_set (Eo *obj, Eina_Bool enabled) |
Set possibility color picking. More... | |
EOAPI Eina_Bool | evas_canvas3d_mesh_color_pick_enable_get (const Eo *obj) |
Set possibility color picking. More... | |
EOAPI void | evas_canvas3d_mesh_vertex_count_set (Eo *obj, unsigned int count) |
The vertex count of the given mesh. More... | |
EOAPI unsigned int | evas_canvas3d_mesh_vertex_count_get (const Eo *obj) |
The vertex count of the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_fog_enable_set (Eo *obj, Eina_Bool enabled) |
Enable or disable fog effect for given mesh. More... | |
EOAPI Eina_Bool | evas_canvas3d_mesh_fog_enable_get (const Eo *obj) |
Enable or disable fog effect for given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_alpha_test_enable_set (Eo *obj, Eina_Bool enabled) |
The enable status of alpha test for given mesh. More... | |
EOAPI Eina_Bool | evas_canvas3d_mesh_alpha_test_enable_get (const Eo *obj) |
The enable status of alpha test for given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_alpha_func_set (Eo *obj, Evas_Canvas3D_Comparison comparison_func, Evas_Real ref_value) |
The alpha function. More... | |
EOAPI void | evas_canvas3d_mesh_alpha_func_get (const Eo *obj, Evas_Canvas3D_Comparison *comparison_func, Evas_Real *ref_value) |
The alpha function. More... | |
EOAPI void | evas_canvas3d_mesh_blending_enable_set (Eo *obj, Eina_Bool blending) |
Enable or disable blending for given mesh. More... | |
EOAPI Eina_Bool | evas_canvas3d_mesh_blending_enable_get (const Eo *obj) |
Enable or disable blending for given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_frame_material_set (Eo *obj, int frame, Evas_Canvas3D_Material *material) |
The material of the key frame of the given mesh. More... | |
EOAPI Evas_Canvas3D_Material * | evas_canvas3d_mesh_frame_material_get (const Eo *obj, int frame) |
The material of the key frame of the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_vertex_assembly_set (Eo *obj, Evas_Canvas3D_Vertex_Assembly assembly) |
The vertex assembly of the given mesh. More... | |
EOAPI Evas_Canvas3D_Vertex_Assembly | evas_canvas3d_mesh_vertex_assembly_get (const Eo *obj) |
The vertex assembly of the given mesh. More... | |
EOAPI void | evas_canvas3d_mesh_shadows_edges_filtering_set (Eo *obj, int blur_level, Evas_Real edges_size) |
The shadow edges blur parameters. More... | |
EOAPI void | evas_canvas3d_mesh_shadows_edges_filtering_get (const Eo *obj, int *blur_level, Evas_Real *edges_size) |
The shadow edges blur parameters. More... | |
EOAPI void | evas_canvas3d_mesh_shadows_constant_bias_set (Eo *obj, Evas_Real bias) |
The offset shadow toward object. More... | |
EOAPI Evas_Real | evas_canvas3d_mesh_shadows_constant_bias_get (const Eo *obj) |
The offset shadow toward object. More... | |
EOAPI void | evas_canvas3d_mesh_lod_boundary_set (Eo *obj, Evas_Real near_lod, Evas_Real far_lod) |
The LOD boundary distances. More... | |
EOAPI void | evas_canvas3d_mesh_lod_boundary_get (const Eo *obj, Evas_Real *near_lod, Evas_Real *far_lod) |
The LOD boundary distances. More... | |
The Evas_Canvas3D_Mesh structure manages key-frame based mesh animations for geometrical objects like character models, terrain, buildings, and other such visible objects.
Each mesh frame can have its own material and geometric data. Blending functions, fog effects, level of detail boundaries, and shadow properties are also supported.
Like other data objects, a mesh definition is located and oriented in the canvas with one or more nodes, with the mesh transformed from its modeling coordinate space to the node's coordinate space. The frame number is also tracked by the node, permitting creation of multiple nodes in the canvas each set to a different animation frame, for example.
Unlike camera and light objects, multiple meshes can be contained in a single node.
EOAPI void evas_canvas3d_mesh_frame_vertex_data_set | ( | Eo * | obj, |
int | frame, | ||
Evas_Canvas3D_Vertex_Attrib | attrib, | ||
int | stride, | ||
const void * | data | ||
) |
Set the vertex data of the key frame of the given mesh.
This function make evas read from the given buffer whenever it requires. If you want to release the buffer after calling this function, use evas_canvas3d_mesh_frame_vertex_data_copy_set instead.
After setting the vertex data, further modifications should be protected by map/unmap pair.
See also evas_canvas3d_mesh_frame_vertex_data_map, evas_canvas3d_mesh_frame_vertex_data_unmap.
[in] | obj | The object. |
[in] | frame | The number of the key frame. |
[in] | attrib | Vertex attribute ID. |
[in] | stride | Stride to go to the next vertex (in bytes). |
[in] | data | Pointer to the vertex data buffer. |
EOAPI void evas_canvas3d_mesh_frame_vertex_data_copy_set | ( | Eo * | obj, |
int | frame, | ||
Evas_Canvas3D_Vertex_Attrib | attrib, | ||
int | stride, | ||
const void * | data | ||
) |
Set the vertex data of the key frame of the given mesh by copying from a buffer.
This function allocates internal vertex buffer and copy from the given buffer. So you can release the buffer. If you want to modify the vertex data use evas_canvas3d_mesh_frame_vertex_data_map. After finishing the modifications, you should call evas_canvas3d_mesh_frame_vertex_data_unmap.
See also evas_canvas3d_mesh_frame_vertex_data_set.
[in] | obj | The object. |
[in] | frame | The number of the key frame. |
[in] | attrib | Vertex attribute ID. |
[in] | stride | Stride to go to the next vertex (in bytes). |
[in] | data | Pointer to the vertex data buffer. |
EOAPI void* evas_canvas3d_mesh_frame_vertex_data_map | ( | Eo * | obj, |
int | frame, | ||
Evas_Canvas3D_Vertex_Attrib | attrib | ||
) |
Map the vertex buffer of the key frame of the given mesh.
After manipulating the mapped buffer, evas_canvas3d_mesh_frame_vertex_data_unmap should be called to properly download the data to the engine. If the data was set using evas_canvas3d_mesh_frame_vertex_data_set, pointer to the original buffer will be returned. Otherwise, the returned pointer can differ every time calling this function.
[in] | obj | The object. |
[in] | frame | The number of the key frame. |
[in] | attrib | Vertex attribute ID. |
EOAPI void evas_canvas3d_mesh_frame_vertex_data_unmap | ( | Eo * | obj, |
int | frame, | ||
Evas_Canvas3D_Vertex_Attrib | attrib | ||
) |
Unmap the vertex buffer of the key frame of the given mesh.
See also evas_canvas3d_mesh_frame_vertex_data_map.
[in] | obj | The object. |
[in] | frame | The number of the key frame. |
[in] | attrib | Vertex attribute ID. |
EOAPI int evas_canvas3d_mesh_frame_vertex_stride_get | ( | const Eo * | obj, |
int | frame, | ||
Evas_Canvas3D_Vertex_Attrib | attrib | ||
) |
Get the vertex buffer stride of the key frame of the given mesh.
This function returns valid stride only when the vertex buffer is mapped. If the data was set with evas_canvas3d_mesh_frame_vertex_data_set, the original stride will be returned unchanged.
[in] | obj | The object. |
[in] | frame | The number of the key frame. |
[in] | attrib | Vertex attribute ID. |
EOAPI void evas_canvas3d_mesh_index_data_set | ( | Eo * | obj, |
Evas_Canvas3D_Index_Format | format, | ||
int | count, | ||
const void * | indices | ||
) |
Set the vertex index data of the given mesh.
When the index data is set, Evas 3D assembles vertices using the index data. If you want to free the data buffer, use evas_canvas3d_mesh_index_data_copy_set. Further modifications should be made within map/unmap pair.
[in] | obj | The object. |
[in] | format | Vertex index data format. |
[in] | count | Vertex index count. |
[in] | indices | Pointer to the index data. |
EOAPI void evas_canvas3d_mesh_convex_hull_data_get | ( | Eo * | obj, |
int | frame, | ||
Eina_Inarray * | vertex, | ||
Eina_Inarray * | index | ||
) |
Get the vertex and index data of convex hull around the given mesh.
[in] | obj | The object. |
[in] | frame | The number of the key frame. |
[in] | vertex | Vertex data pointer |
[in] | index | Index data pointer |
EOAPI void evas_canvas3d_mesh_index_data_copy_set | ( | Eo * | obj, |
Evas_Canvas3D_Index_Format | format, | ||
int | count, | ||
const void * | indices | ||
) |
Set the vertex index data of the given mesh by copying from a buffer.
This function allocates internal index buffer any copy data from the given buffer. Further modifications can be made within map/unmap pair.
See also evas_canvas3d_mesh_index_data_set.
[in] | obj | The object. |
[in] | format | Vertex index data format. |
[in] | count | Vertex index count. |
[in] | indices | Pointer to the index data. |
EOAPI Evas_Canvas3D_Index_Format evas_canvas3d_mesh_index_format_get | ( | const Eo * | obj | ) |
Get the format of the index data of the given mesh.
Returns valid format only when the index buffer is mapped. First map the index buffer and then query the properties of the mapped buffer. If the index data was set by evas_canvas3d_mesh_index_data_set, the original format will be returned. Otherwise the format can differ every time you call the evas_canvas3d_mesh_index_data_map function.
[in] | obj | The object. |
EOAPI int evas_canvas3d_mesh_index_count_get | ( | const Eo * | obj | ) |
Get the count of the index data of the given mesh.
This function returns the index count of the last called data_set function.
[in] | obj | The object. |
EOAPI void* evas_canvas3d_mesh_index_data_map | ( | Eo * | obj | ) |
Map the index buffer of the given mesh.
evas_canvas3d_mesh_index_data_unmap should be called after modifications. If the data was set using evas_canvas3d_mesh_index_data_set, the original pointer will be returned, otherwise, the returned pointer may differ every time you call this function.
[in] | obj | The object. |
EOAPI void evas_canvas3d_mesh_index_data_unmap | ( | Eo * | obj | ) |
Unmap the index buffer of the given mesh.
See also evas_canvas3d_mesh_index_data_map.
[in] | obj | The object. |
Returns true
if frame was added and false
in other case.
[in] | obj | The object. |
[in] | frame | Frame number. |
true
ifr frame was added, false
otherwise EOAPI void evas_canvas3d_mesh_frame_add | ( | Eo * | obj, |
int | frame | ||
) |
Add a key frame to the given mesh.
If specified frame is already exist, error message will be generated.
[in] | obj | The object. |
[in] | frame | The number of the key frame to be added. |
EOAPI void evas_canvas3d_mesh_frame_del | ( | Eo * | obj, |
int | frame | ||
) |
Delete a key frame from the given mesh.
[in] | obj | The object. |
[in] | frame | The number of the key frame to be added. |
EOAPI void evas_canvas3d_mesh_fog_color_set | ( | Eo * | obj, |
Evas_Real | r, | ||
Evas_Real | g, | ||
Evas_Real | b, | ||
Evas_Real | a | ||
) |
Set the fog color and density for the given mesh.
[in] | obj | The object. |
[in] | r | The red component of the fog color. |
[in] | g | The green component of the fog color. |
[in] | b | The blue component of the fog color. |
[in] | a | The transparency of fog. |
EOAPI void evas_canvas3d_mesh_fog_color_get | ( | Eo * | obj, |
Evas_Real * | r, | ||
Evas_Real * | g, | ||
Evas_Real * | b, | ||
Evas_Real * | a | ||
) |
Set the fog color and density for the given mesh.
[in] | obj | The object. |
[out] | r | Pointer to receive red component of the fog color. |
[out] | g | Pointer to receive green component of the fog color. |
[out] | b | Pointer to receive blue component of the fog color. |
[out] | a | Pointer to receive transparency of fog. |
EOAPI void evas_canvas3d_mesh_blending_func_set | ( | Eo * | obj, |
Evas_Canvas3D_Blend_Func | sfactor, | ||
Evas_Canvas3D_Blend_Func | dfactor | ||
) |
Set the blending function for given mesh.
[in] | obj | The object. |
[in] | sfactor | Specifies how the red, green, blue, and alpha source blending factors are computed. |
[in] | dfactor | Specifies how the red, green, blue, and alpha destination blending factors are computed. |
EOAPI void evas_canvas3d_mesh_blending_func_get | ( | Eo * | obj, |
Evas_Canvas3D_Blend_Func * | sfactor, | ||
Evas_Canvas3D_Blend_Func * | dfactor | ||
) |
Get blending function for given mesh.
[in] | obj | The object. |
[out] | sfactor | Pointer to receive source blending factors key. |
[out] | dfactor | Pointer to receive destination blending factors key. |
EOAPI void evas_canvas3d_mesh_from_primitive_set | ( | Eo * | obj, |
int | frame, | ||
Evas_Canvas3D_Primitive * | primitive | ||
) |
Set the data of given mesh frame from the given primitive.
[in] | obj | The object. |
[in] | frame | Specifies data of which frame of given mesh will be set. |
[in] | primitive | Specifies which data will be set. |
EOAPI void evas_canvas3d_mesh_shader_mode_set | ( | Eo * | obj, |
Evas_Canvas3D_Shader_Mode | mode | ||
) |
Set the shader mode of the given mesh.
Default shader mode is EVAS_CANVAS3D_SHADER_MODE_VERTEX_COLOR.
[in] | obj | The object. |
[in] | mode | The shader mode. |
EOAPI Evas_Canvas3D_Shader_Mode evas_canvas3d_mesh_shader_mode_get | ( | const Eo * | obj | ) |
Set the shader mode of the given mesh.
Default shader mode is EVAS_CANVAS3D_SHADER_MODE_VERTEX_COLOR.
[in] | obj | The object. |
Set possibility color picking.
[in] | obj | The object. |
[in] | enabled | Possibility flag. |
Set possibility color picking.
[in] | obj | The object. |
EOAPI void evas_canvas3d_mesh_vertex_count_set | ( | Eo * | obj, |
unsigned int | count | ||
) |
The vertex count of the given mesh.
Each key frame should have same vertex count to be properly interpolated. Key frames have their own vertex data and the data should have more vertices than the mesh's vertex count.
Default vertex count is 0.
[in] | obj | The object. |
[in] | count | Vertex count. |
EOAPI unsigned int evas_canvas3d_mesh_vertex_count_get | ( | const Eo * | obj | ) |
The vertex count of the given mesh.
Each key frame should have same vertex count to be properly interpolated. Key frames have their own vertex data and the data should have more vertices than the mesh's vertex count.
Default vertex count is 0.
[in] | obj | The object. |
Enable or disable fog effect for given mesh.
Default fog is disabled.
[in] | obj | The object. |
[in] | enabled | Fog enabled status. |
Enable or disable fog effect for given mesh.
Default fog is disabled.
[in] | obj | The object. |
The enable status of alpha test for given mesh.
Default alpha test disabled.
[in] | obj | The object. |
[in] | enabled | The alpha test status. |
The enable status of alpha test for given mesh.
Default alpha test disabled.
Get the enable status of alpha test for given mesh.
[in] | obj | The object. |
EOAPI void evas_canvas3d_mesh_alpha_func_set | ( | Eo * | obj, |
Evas_Canvas3D_Comparison | comparison_func, | ||
Evas_Real | ref_value | ||
) |
The alpha function.
The alpha test discards fragments depending on the outcome of a comparison between an incoming fragment's alpha value and a constant reference value. This function specifies the reference value and the comparison function.
[in] | obj | The object. |
[in] | comparison_func | The alpha comparison function. |
[in] | ref_value | The reference value that incoming alpha values are compared to. |
EOAPI void evas_canvas3d_mesh_alpha_func_get | ( | const Eo * | obj, |
Evas_Canvas3D_Comparison * | comparison_func, | ||
Evas_Real * | ref_value | ||
) |
The alpha function.
The alpha test discards fragments depending on the outcome of a comparison between an incoming fragment's alpha value and a constant reference value. This function specifies the reference value and the comparison function.
[in] | obj | The object. |
[out] | comparison_func | The alpha comparison function. |
[out] | ref_value | The reference value that incoming alpha values are compared to. |
Enable or disable blending for given mesh.
[in] | obj | The object. |
[in] | blending | The blending state. |
Enable or disable blending for given mesh.
[in] | obj | The object. |
EOAPI void evas_canvas3d_mesh_frame_material_set | ( | Eo * | obj, |
int | frame, | ||
Evas_Canvas3D_Material * | material | ||
) |
The material of the key frame of the given mesh.
Setting different materials for each key frame is useful for doing animations like GIF images or color changing animations.
[in] | obj | The object. |
[in] | frame | The number of the key frame. |
[in] | material | The material to be set to the key frame. |
EOAPI Evas_Canvas3D_Material* evas_canvas3d_mesh_frame_material_get | ( | const Eo * | obj, |
int | frame | ||
) |
The material of the key frame of the given mesh.
Setting different materials for each key frame is useful for doing animations like GIF images or color changing animations.
[in] | obj | The object. |
[in] | frame | The number of the key frame. |
EOAPI void evas_canvas3d_mesh_vertex_assembly_set | ( | Eo * | obj, |
Evas_Canvas3D_Vertex_Assembly | assembly | ||
) |
The vertex assembly of the given mesh.
Vertex assembly defines how the engine organizes vertices into geometric primitives.
Default vertex assembly is EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES.
[in] | obj | The object. |
[in] | assembly | The vertex assembly. |
EOAPI Evas_Canvas3D_Vertex_Assembly evas_canvas3d_mesh_vertex_assembly_get | ( | const Eo * | obj | ) |
The vertex assembly of the given mesh.
Vertex assembly defines how the engine organizes vertices into geometric primitives.
Default vertex assembly is EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES.
[in] | obj | The object. |
EOAPI void evas_canvas3d_mesh_shadows_edges_filtering_set | ( | Eo * | obj, |
int | blur_level, | ||
Evas_Real | edges_size | ||
) |
The shadow edges blur parameters.
The averaging values in window is used for blurring. User can set the size of window and num of points in window.
[in] | obj | The object. |
[in] | blur_level | Number of points within a bluring radius. |
[in] | edges_size | The bluring radius. |
EOAPI void evas_canvas3d_mesh_shadows_edges_filtering_get | ( | const Eo * | obj, |
int * | blur_level, | ||
Evas_Real * | edges_size | ||
) |
The shadow edges blur parameters.
The averaging values in window is used for blurring. User can set the size of window and num of points in window.
[in] | obj | The object. |
[out] | blur_level | Number of points within a bluring radius. |
[out] | edges_size | The bluring radius. |
The offset shadow toward object.
[in] | obj | The object. |
[in] | bias | Offset. |
The offset shadow toward object.
[in] | obj | The object. |
The LOD boundary distances.
[in] | obj | The object. |
[in] | near_lod | Up boundary |
[in] | far_lod | Down boundary |