summaryrefslogtreecommitdiff
path: root/src/lib/evas/Evas_Common.h
diff options
context:
space:
mode:
authorChunEon Park <chuneon.park@samsung.com>2014-04-16 16:31:14 +0900
committerChunEon Park <hermet@hermet.pe.kr>2014-04-25 17:34:11 +0900
commit433699e976d21efd219c9c4660aa4975a4cc56da (patch)
tree6b360bd1885e3af3825cd28de702050737be2806 /src/lib/evas/Evas_Common.h
parent60e703bc24819b89e28d335e21849aa64bf17dd3 (diff)
evas/evas3d: cleanup docs and removed unncessary files.
Conflicts: src/lib/evas/Evas_Legacy.h
Diffstat (limited to 'src/lib/evas/Evas_Common.h')
-rw-r--r--src/lib/evas/Evas_Common.h1348
1 files changed, 744 insertions, 604 deletions
diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h
index 6912d96b5a..bab22af087 100644
--- a/src/lib/evas/Evas_Common.h
+++ b/src/lib/evas/Evas_Common.h
@@ -134,71 +134,6 @@ typedef enum _Evas_Callback_Type
134 */ 134 */
135typedef Eo_Callback_Priority Evas_Callback_Priority; 135typedef Eo_Callback_Priority Evas_Callback_Priority;
136 136
137// 3D Stuff
138typedef enum _Evas_3D_Object_Type
139{
140 EVAS_3D_OBJECT_TYPE_INVALID = 0,
141 EVAS_3D_OBJECT_TYPE_SCENE,
142 EVAS_3D_OBJECT_TYPE_NODE,
143 EVAS_3D_OBJECT_TYPE_CAMERA,
144 EVAS_3D_OBJECT_TYPE_LIGHT,
145 EVAS_3D_OBJECT_TYPE_MODEL,
146 EVAS_3D_OBJECT_TYPE_MESH,
147 EVAS_3D_OBJECT_TYPE_TEXTURE,
148 EVAS_3D_OBJECT_TYPE_MATERIAL,
149} Evas_3D_Object_Type;
150
151typedef enum _Evas_3D_State
152{
153 EVAS_3D_STATE_MAX = 16,
154
155 EVAS_3D_STATE_ANY = 0,
156
157 EVAS_3D_STATE_SCENE_ROOT_NODE = 1,
158 EVAS_3D_STATE_SCENE_CAMERA_NODE,
159 EVAS_3D_STATE_SCENE_BACKGROUND_COLOR,
160 EVAS_3D_STATE_SCENE_SIZE,
161
162 EVAS_3D_STATE_TEXTURE_DATA = 1,
163 EVAS_3D_STATE_TEXTURE_WRAP,
164 EVAS_3D_STATE_TEXTURE_FILTER,
165
166 EVAS_3D_STATE_MATERIAL_ID = 1,
167 EVAS_3D_STATE_MATERIAL_COLOR,
168 EVAS_3D_STATE_MATERIAL_TEXTURE,
169
170 EVAS_3D_STATE_MESH_VERTEX_COUNT = 1,
171 EVAS_3D_STATE_MESH_FRAME,
172 EVAS_3D_STATE_MESH_MATERIAL,
173 EVAS_3D_STATE_MESH_TRANSFORM,
174 EVAS_3D_STATE_MESH_VERTEX_DATA,
175 EVAS_3D_STATE_MESH_INDEX_DATA,
176 EVAS_3D_STATE_MESH_VERTEX_ASSEMBLY,
177 EVAS_3D_STATE_MESH_SHADE_MODE,
178
179 EVAS_3D_STATE_CAMERA_PROJECTION = 1,
180
181 EVAS_3D_STATE_LIGHT_AMBIENT = 1,
182 EVAS_3D_STATE_LIGHT_DIFFUSE,
183 EVAS_3D_STATE_LIGHT_SPECULAR,
184 EVAS_3D_STATE_LIGHT_SPOT_DIR,
185 EVAS_3D_STATE_LIGHT_SPOT_EXP,
186 EVAS_3D_STATE_LIGHT_SPOT_CUTOFF,
187 EVAS_3D_STATE_LIGHT_ATTENUATION,
188
189 EVAS_3D_STATE_NODE_TRANSFORM = 1,
190 EVAS_3D_STATE_NODE_MESH_GEOMETRY,
191 EVAS_3D_STATE_NODE_MESH_MATERIAL,
192 EVAS_3D_STATE_NODE_MESH_FRAME,
193 EVAS_3D_STATE_NODE_MESH_SHADE_MODE,
194 EVAS_3D_STATE_NODE_MESH_MATERIAL_ID,
195 EVAS_3D_STATE_NODE_LIGHT,
196 EVAS_3D_STATE_NODE_CAMERA,
197 EVAS_3D_STATE_NODE_PARENT,
198 EVAS_3D_STATE_NODE_MEMBER,
199} Evas_3D_State;
200
201
202/** 137/**
203 * Flags for Mouse Button events 138 * Flags for Mouse Button events
204 */ 139 */
@@ -5357,8 +5292,6 @@ EAPI const Eina_List *evas_font_path_global_list(void) EINA_WARN_UNUSED_R
5357 */ 5292 */
5358 5293
5359 5294
5360 // 3D stuff
5361
5362 /** 5295 /**
5363 * @defgroup Evas_3D Evas 3D Extensions 5296 * @defgroup Evas_3D Evas 3D Extensions
5364 * 5297 *
@@ -5370,7 +5303,7 @@ EAPI const Eina_List *evas_font_path_global_list(void) EINA_WARN_UNUSED_R
5370/** 5303/**
5371 * @page evas_3d_main Evas 3D 5304 * @page evas_3d_main Evas 3D
5372 * 5305 *
5373 * @date 2014 (created) 5306 * @since 1.10
5374 * 5307 *
5375 * @section toc Table of Contents 5308 * @section toc Table of Contents
5376 * 5309 *
@@ -5452,7 +5385,7 @@ EAPI const Eina_List *evas_font_path_global_list(void) EINA_WARN_UNUSED_R
5452 * @ingroup Evas_3D 5385 * @ingroup Evas_3D
5453 * 5386 *
5454 * A node is used for hierarchical construction of a scene graph. Evas 3D 5387 * A node is used for hierarchical construction of a scene graph. Evas 3D
5455 * provides n-ary tree structure for the scene graph construction.A node has 5388 * provides n-ary tree structure for the scene graph construction. A node has
5456 * its position, orientation and scale. Other objects, like camera, light and 5389 * its position, orientation and scale. Other objects, like camera, light and
5457 * mesh can be contained in a node to be located in a 3D space. 5390 * mesh can be contained in a node to be located in a 3D space.
5458 */ 5391 */
@@ -5530,11 +5463,20 @@ EAPI const Eina_List *evas_font_path_global_list(void) EINA_WARN_UNUSED_R
5530 * 754 floating-point type always use Evas_Real for the type safety. Double 5463 * 754 floating-point type always use Evas_Real for the type safety. Double
5531 * precision and fixed-point types will be useful but it's not supported yet. 5464 * precision and fixed-point types will be useful but it's not supported yet.
5532 * 5465 *
5466 * @since 1.10
5533 * @ingroup Evas_3D_Types 5467 * @ingroup Evas_3D_Types
5534 */ 5468 */
5535typedef double Evas_Real; 5469typedef double Evas_Real;
5536 5470
5537 5471
5472/**
5473 * @typedef Evas_3D_Object
5474 *
5475 * 3D Object object handle
5476 *
5477 * @since 1.10
5478 * @ingroup Evas_3D_Object
5479 */
5538typedef Eo Evas_3D_Object; 5480typedef Eo Evas_3D_Object;
5539 5481
5540/** 5482/**
@@ -5542,6 +5484,7 @@ typedef Eo Evas_3D_Object;
5542 * 5484 *
5543 * Scene object handle 5485 * Scene object handle
5544 * 5486 *
5487 * @since 1.10
5545 * @ingroup Evas_3D_Scene 5488 * @ingroup Evas_3D_Scene
5546 */ 5489 */
5547typedef Eo Evas_3D_Scene; 5490typedef Eo Evas_3D_Scene;
@@ -5551,6 +5494,7 @@ typedef Eo Evas_3D_Scene;
5551 * 5494 *
5552 * Node object handle 5495 * Node object handle
5553 * 5496 *
5497 * @since 1.10
5554 * @ingroup Evas_3D_Node 5498 * @ingroup Evas_3D_Node
5555 */ 5499 */
5556typedef Eo Evas_3D_Node; 5500typedef Eo Evas_3D_Node;
@@ -5560,6 +5504,7 @@ typedef Eo Evas_3D_Node;
5560 * 5504 *
5561 * Camera object handle 5505 * Camera object handle
5562 * 5506 *
5507 * @since 1.10
5563 * @ingroup Evas_3D_Camera 5508 * @ingroup Evas_3D_Camera
5564 */ 5509 */
5565typedef Eo Evas_3D_Camera; 5510typedef Eo Evas_3D_Camera;
@@ -5569,6 +5514,7 @@ typedef Eo Evas_3D_Camera;
5569 * 5514 *
5570 * Light object handle 5515 * Light object handle
5571 * 5516 *
5517 * @since 1.10
5572 * @ingroup Evas_3D_Light 5518 * @ingroup Evas_3D_Light
5573 */ 5519 */
5574typedef Eo Evas_3D_Light; 5520typedef Eo Evas_3D_Light;
@@ -5578,6 +5524,7 @@ typedef Eo Evas_3D_Light;
5578 * 5524 *
5579 * Mesh object handle 5525 * Mesh object handle
5580 * 5526 *
5527 * @since 1.10
5581 * @ingroup Evas_3D_Mesh 5528 * @ingroup Evas_3D_Mesh
5582 */ 5529 */
5583typedef Eo Evas_3D_Mesh; 5530typedef Eo Evas_3D_Mesh;
@@ -5587,6 +5534,7 @@ typedef Eo Evas_3D_Mesh;
5587 * 5534 *
5588 * Texture object handle 5535 * Texture object handle
5589 * 5536 *
5537 * @since 1.10
5590 * @ingroup Evas_3D_Texture 5538 * @ingroup Evas_3D_Texture
5591 */ 5539 */
5592typedef Eo Evas_3D_Texture; 5540typedef Eo Evas_3D_Texture;
@@ -5596,227 +5544,310 @@ typedef Eo Evas_3D_Texture;
5596 * 5544 *
5597 * Material object handle 5545 * Material object handle
5598 * 5546 *
5547 * @since 1.10
5599 * @ingroup Evas_3D_Material 5548 * @ingroup Evas_3D_Material
5600 */ 5549 */
5601typedef Eo Evas_3D_Material; 5550typedef Eo Evas_3D_Material;
5602 5551
5603/** 5552/**
5553 * Type of 3D Object
5554 *
5555 * @since 1.10
5556 * @ingroup Evas_3D_Type
5557 */
5558typedef enum _Evas_3D_Object_Type
5559{
5560 EVAS_3D_OBJECT_TYPE_INVALID = 0,
5561 EVAS_3D_OBJECT_TYPE_SCENE,
5562 EVAS_3D_OBJECT_TYPE_NODE,
5563 EVAS_3D_OBJECT_TYPE_CAMERA,
5564 EVAS_3D_OBJECT_TYPE_LIGHT,
5565 EVAS_3D_OBJECT_TYPE_MODEL,
5566 EVAS_3D_OBJECT_TYPE_MESH,
5567 EVAS_3D_OBJECT_TYPE_TEXTURE,
5568 EVAS_3D_OBJECT_TYPE_MATERIAL,
5569} Evas_3D_Object_Type;
5570
5571/**
5572 * State of the Evas 3D
5573 *
5574 * @since 1.10
5575 * @ingroup Evas_3D_Type
5576 */
5577typedef enum _Evas_3D_State
5578{
5579 EVAS_3D_STATE_MAX = 16,
5580
5581 EVAS_3D_STATE_ANY = 0,
5582
5583 EVAS_3D_STATE_SCENE_ROOT_NODE = 1,
5584 EVAS_3D_STATE_SCENE_CAMERA_NODE,
5585 EVAS_3D_STATE_SCENE_BACKGROUND_COLOR,
5586 EVAS_3D_STATE_SCENE_SIZE,
5587
5588 EVAS_3D_STATE_TEXTURE_DATA = 1,
5589 EVAS_3D_STATE_TEXTURE_WRAP,
5590 EVAS_3D_STATE_TEXTURE_FILTER,
5591
5592 EVAS_3D_STATE_MATERIAL_ID = 1,
5593 EVAS_3D_STATE_MATERIAL_COLOR,
5594 EVAS_3D_STATE_MATERIAL_TEXTURE,
5595
5596 EVAS_3D_STATE_MESH_VERTEX_COUNT = 1,
5597 EVAS_3D_STATE_MESH_FRAME,
5598 EVAS_3D_STATE_MESH_MATERIAL,
5599 EVAS_3D_STATE_MESH_TRANSFORM,
5600 EVAS_3D_STATE_MESH_VERTEX_DATA,
5601 EVAS_3D_STATE_MESH_INDEX_DATA,
5602 EVAS_3D_STATE_MESH_VERTEX_ASSEMBLY,
5603 EVAS_3D_STATE_MESH_SHADE_MODE,
5604
5605 EVAS_3D_STATE_CAMERA_PROJECTION = 1,
5606
5607 EVAS_3D_STATE_LIGHT_AMBIENT = 1,
5608 EVAS_3D_STATE_LIGHT_DIFFUSE,
5609 EVAS_3D_STATE_LIGHT_SPECULAR,
5610 EVAS_3D_STATE_LIGHT_SPOT_DIR,
5611 EVAS_3D_STATE_LIGHT_SPOT_EXP,
5612 EVAS_3D_STATE_LIGHT_SPOT_CUTOFF,
5613 EVAS_3D_STATE_LIGHT_ATTENUATION,
5614
5615 EVAS_3D_STATE_NODE_TRANSFORM = 1,
5616 EVAS_3D_STATE_NODE_MESH_GEOMETRY,
5617 EVAS_3D_STATE_NODE_MESH_MATERIAL,
5618 EVAS_3D_STATE_NODE_MESH_FRAME,
5619 EVAS_3D_STATE_NODE_MESH_SHADE_MODE,
5620 EVAS_3D_STATE_NODE_MESH_MATERIAL_ID,
5621 EVAS_3D_STATE_NODE_LIGHT,
5622 EVAS_3D_STATE_NODE_CAMERA,
5623 EVAS_3D_STATE_NODE_PARENT,
5624 EVAS_3D_STATE_NODE_MEMBER,
5625} Evas_3D_State;
5626
5627/**
5604 * Transform space 5628 * Transform space
5629 *
5630 * @since 1.10
5605 * @ingroup Evas_3D_Types 5631 * @ingroup Evas_3D_Types
5606 */ 5632 */
5607typedef enum _Evas_3D_Space 5633typedef enum _Evas_3D_Space
5608{ 5634{
5609 EVAS_3D_SPACE_LOCAL, /**< Local coordinate space */ 5635 EVAS_3D_SPACE_LOCAL = 0, /**< Local coordinate space */
5610 EVAS_3D_SPACE_PARENT, /**< Parent coordinate space */ 5636 EVAS_3D_SPACE_PARENT, /**< Parent coordinate space */
5611 EVAS_3D_SPACE_WORLD, /**< World coordinate space */ 5637 EVAS_3D_SPACE_WORLD, /**< World coordinate space */
5612} Evas_3D_Space; 5638} Evas_3D_Space;
5613 5639
5614/** 5640/**
5615 * Types of a node 5641 * Types of a node
5642 *
5643 * @since 1.10
5616 * @ingroup Evas_3D_Types 5644 * @ingroup Evas_3D_Types
5617 */ 5645 */
5618typedef enum _Evas_3D_Node_Type 5646typedef enum _Evas_3D_Node_Type
5619{ 5647{
5620 EVAS_3D_NODE_TYPE_NODE, /**< Node with no items */ 5648 EVAS_3D_NODE_TYPE_NODE = 0, /**< Node with no items */
5621 EVAS_3D_NODE_TYPE_CAMERA, /**< Node which can contain camera object */ 5649 EVAS_3D_NODE_TYPE_CAMERA, /**< Node which can contain camera object */
5622 EVAS_3D_NODE_TYPE_LIGHT, /**< Node which can contain light object */ 5650 EVAS_3D_NODE_TYPE_LIGHT, /**< Node which can contain light object */
5623 EVAS_3D_NODE_TYPE_MESH, /**< Node which can contain mesh objects */ 5651 EVAS_3D_NODE_TYPE_MESH, /**< Node which can contain mesh objects */
5624} Evas_3D_Node_Type; 5652} Evas_3D_Node_Type;
5625 5653
5626/** 5654/**
5627 * Vertex attribute IDs 5655 * Vertex attribute IDs
5656 *
5657 * @since 1.10
5628 * @ingroup Evas_3D_Types 5658 * @ingroup Evas_3D_Types
5629 */ 5659 */
5630typedef enum _Evas_3D_Vertex_Attrib 5660typedef enum _Evas_3D_Vertex_Attrib
5631{ 5661{
5632 EVAS_3D_VERTEX_POSITION, /**< Vertex position */ 5662 EVAS_3D_VERTEX_POSITION = 0, /**< Vertex position */
5633 EVAS_3D_VERTEX_NORMAL, /**< Vertex normal */ 5663 EVAS_3D_VERTEX_NORMAL, /**< Vertex normal */
5634 EVAS_3D_VERTEX_TANGENT, /**< Vertex tangent (for normal mapping) */ 5664 EVAS_3D_VERTEX_TANGENT, /**< Vertex tangent (for normal mapping) */
5635 EVAS_3D_VERTEX_COLOR, /**< Vertex color */ 5665 EVAS_3D_VERTEX_COLOR, /**< Vertex color */
5636 EVAS_3D_VERTEX_TEXCOORD, /**< Vertex texture coordinate */ 5666 EVAS_3D_VERTEX_TEXCOORD, /**< Vertex texture coordinate */
5637} Evas_3D_Vertex_Attrib; 5667} Evas_3D_Vertex_Attrib;
5638 5668
5639/** 5669/**
5640 * Index formats 5670 * Index formats
5671 *
5672 * @since 1.10
5641 * @ingroup Evas_3D_Types 5673 * @ingroup Evas_3D_Types
5642 */ 5674 */
5643typedef enum _Evas_3D_Index_Format 5675typedef enum _Evas_3D_Index_Format
5644{ 5676{
5645 EVAS_3D_INDEX_FORMAT_NONE, /**< Indexing is not used */ 5677 EVAS_3D_INDEX_FORMAT_NONE = 0, /**< Indexing is not used */
5646 EVAS_3D_INDEX_FORMAT_UNSIGNED_BYTE, /**< Index is of type unsigned byte */ 5678 EVAS_3D_INDEX_FORMAT_UNSIGNED_BYTE, /**< Index is of type unsigned byte */
5647 EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, /**< Index is of type unsigned short */ 5679 EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT /**< Index is of type unsigned short */
5648} Evas_3D_Index_Format; 5680} Evas_3D_Index_Format;
5649 5681
5650/** 5682/**
5651 * Vertex assembly modes 5683 * Vertex assembly modes
5652 * @ingroup Evas_3D_Types
5653 * 5684 *
5654 * Vertex assembly represents how the vertices are organized into geometric 5685 * Vertex assembly represents how the vertices are organized into geometric
5655 * primitives. 5686 * primitives.
5687 *
5688 * @since 1.10
5689 * @ingroup Evas_3D_Types
5656 */ 5690 */
5657typedef enum _Evas_3D_Vertex_Assembly 5691typedef enum _Evas_3D_Vertex_Assembly
5658{ 5692{
5659 EVAS_3D_VERTEX_ASSEMBLY_POINTS, /**< A vertex is rendered as a point */ 5693 /**< A vertex is rendered as a point */
5660 EVAS_3D_VERTEX_ASSEMBLY_LINES, /**< Two vertices are organized as a line */ 5694 EVAS_3D_VERTEX_ASSEMBLY_POINTS = 0,
5661 EVAS_3D_VERTEX_ASSEMBLY_LINE_STRIP, /**< Vertices are organized as a connected line path */ 5695 /**< Two vertices are organized as a line */
5662 EVAS_3D_VERTEX_ASSEMBLY_LINE_LOOP, /**< Vertices are organized as a closed line path */ 5696 EVAS_3D_VERTEX_ASSEMBLY_LINES,
5663 EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES, /**< Three vertices are organized as a triangle */ 5697 /**< Vertices are organized as a connected line path */
5664 EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_STRIP, /**< Vertices are organized as connected triangles */ 5698 EVAS_3D_VERTEX_ASSEMBLY_LINE_STRIP,
5665 EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_FAN, /**< Vertices are organized as a triangle fan */ 5699 /**< Vertices are organized as a closed line path */
5700 EVAS_3D_VERTEX_ASSEMBLY_LINE_LOOP,
5701 /**< Three vertices are organized as a triangle */
5702 EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES,
5703 /**< Vertices are organized as connected triangles */
5704 EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_STRIP,
5705 /**< Vertices are organized as a triangle fan */
5706 EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_FAN,
5666} Evas_3D_Vertex_Assembly; 5707} Evas_3D_Vertex_Assembly;
5667 5708
5668/** 5709/**
5669 * Color formats of pixel data 5710 * Color formats of pixel data
5711 *
5712 * @since 1.10
5670 * @ingroup Evas_3D_Types 5713 * @ingroup Evas_3D_Types
5671 */ 5714 */
5672typedef enum _Evas_3D_Color_Format 5715typedef enum _Evas_3D_Color_Format
5673{ 5716{
5674 EVAS_3D_COLOR_FORMAT_RGBA, /**< Color contains full components, red, green, blue and alpha */ 5717 /**< Color contains full components, red, green, blue and alpha */
5675 EVAS_3D_COLOR_FORMAT_RGB, /**< Color contains only red, green and blue components */ 5718 EVAS_3D_COLOR_FORMAT_RGBA = 0,
5676 EVAS_3D_COLOR_FORMAT_ALPHA, /**< Color contains only alpha component */ 5719 /**< Color contains only red, green and blue components */
5720 EVAS_3D_COLOR_FORMAT_RGB,
5721 /**< Color contains only alpha component */
5722 EVAS_3D_COLOR_FORMAT_ALPHA
5677} Evas_3D_Color_Format; 5723} Evas_3D_Color_Format;
5678 5724
5679/** 5725/**
5680 * Pixel formats 5726 * Pixel formats
5727 *
5728 * @since 1.10
5681 * @ingroup Evas_3D_Types 5729 * @ingroup Evas_3D_Types
5682 */ 5730 */
5683typedef enum _Evas_3D_Pixel_Format 5731typedef enum _Evas_3D_Pixel_Format
5684{ 5732{
5685 EVAS_3D_PIXEL_FORMAT_8, /**< 8-bit pixel with single component */ 5733 /**< 8-bit pixel with single component */
5686 EVAS_3D_PIXEL_FORMAT_565, /**< 16-bit pixel with three components (5-6-5 bit) */ 5734 EVAS_3D_PIXEL_FORMAT_8 = 0,
5687 EVAS_3D_PIXEL_FORMAT_888, /**< 24-bit pixel with three 8-bit components */ 5735 /**< 16-bit pixel with three components (5-6-5 bit) */
5688 EVAS_3D_PIXEL_FORMAT_8888, /**< 32-bit pixel with four 8-bit components */ 5736 EVAS_3D_PIXEL_FORMAT_565,
5689 EVAS_3D_PIXEL_FORMAT_4444, /**< 16-bit pixel with four 4-bit components */ 5737 /**< 24-bit pixel with three 8-bit components */
5690 EVAS_3D_PIXEL_FORMAT_5551, /**< 16-bit pixel with four components (5-5-5-1 bit) */ 5738 EVAS_3D_PIXEL_FORMAT_888,
5739 /**< 32-bit pixel with four 8-bit components */
5740 EVAS_3D_PIXEL_FORMAT_8888,
5741 /**< 16-bit pixel with four 4-bit components */
5742 EVAS_3D_PIXEL_FORMAT_4444,
5743 /**< 16-bit pixel with four components (5-5-5-1 bit) */
5744 EVAS_3D_PIXEL_FORMAT_5551
5691} Evas_3D_Pixel_Format; 5745} Evas_3D_Pixel_Format;
5692 5746
5693/** 5747/**
5694 * Wrap modes 5748 * Wrap modes
5749 *
5750 * @since 1.10
5695 * @ingroup Evas_3D_Types 5751 * @ingroup Evas_3D_Types
5696 */ 5752 */
5697typedef enum _Evas_3D_Wrap_Mode 5753typedef enum _Evas_3D_Wrap_Mode
5698{ 5754{
5699 EVAS_3D_WRAP_MODE_CLAMP, /**< Values will be clamped to be in range [min, max] */ 5755 /**< Values will be clamped to be in range [min, max] */
5700 EVAS_3D_WRAP_MODE_REPEAT, /**< Values will be repeated */ 5756 EVAS_3D_WRAP_MODE_CLAMP = 0,
5701 EVAS_3D_WRAP_MODE_REFLECT, /**< Values will be repeated in a reflected manner */ 5757 /**< Values will be repeated */
5758 EVAS_3D_WRAP_MODE_REPEAT,
5759 /**< Values will be repeated in a reflected manner */
5760 EVAS_3D_WRAP_MODE_REFLECT
5702} Evas_3D_Wrap_Mode; 5761} Evas_3D_Wrap_Mode;
5703 5762
5704/** 5763/**
5705 * Texture filters 5764 * Texture filters
5765 *
5766 * @since 1.10
5706 * @ingroup Evas_3D_Types 5767 * @ingroup Evas_3D_Types
5707 */ 5768 */
5708typedef enum _Evas_3D_Texture_Filter 5769typedef enum _Evas_3D_Texture_Filter
5709{ 5770{
5710 EVAS_3D_TEXTURE_FILTER_NEAREST, /**< Samples nearest texel */ 5771 /**< Samples nearest texel */
5711 EVAS_3D_TEXTURE_FILTER_LINEAR, /**< Lineary interpolate nearby texels */ 5772 EVAS_3D_TEXTURE_FILTER_NEAREST = 0,
5712 EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST, /**< Nearest sampling mipmap */ 5773 /**< Lineary interpolate nearby texels */
5713 EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST, /**< Nearest sampling mipmap and interpolate */ 5774 EVAS_3D_TEXTURE_FILTER_LINEAR,
5714 EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR, /**< Linear sampling in nearest mipmap */ 5775 /**< Nearest sampling mipmap */
5715 EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR, /**< Linear sampling in mipmap and interpolate */ 5776 EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST,
5777 /**< Nearest sampling mipmap and interpolate */
5778 EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST,
5779 /**< Linear sampling in nearest mipmap */
5780 EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR,
5781 /**< Linear sampling in mipmap and interpolate */
5782 EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR
5716} Evas_3D_Texture_Filter; 5783} Evas_3D_Texture_Filter;
5717 5784
5718/** 5785/**
5719 * Shade modes 5786 * Shade modes
5787 *
5788 * @since 1.10
5720 * @ingroup Evas_3D_Types 5789 * @ingroup Evas_3D_Types
5721 */ 5790 */
5722typedef enum _Evas_3D_Shade_Mode 5791typedef enum _Evas_3D_Shade_Mode
5723{ 5792{
5724 EVAS_3D_SHADE_MODE_VERTEX_COLOR, /**< Shaded using vertex color attribute */ 5793 /**< Shaded using vertex color attribute */
5725 EVAS_3D_SHADE_MODE_DIFFUSE, /**< Shaded using material diffuse term */ 5794 EVAS_3D_SHADE_MODE_VERTEX_COLOR = 0,
5726 EVAS_3D_SHADE_MODE_FLAT, /**< Per-vertex flat lighting */ 5795 /**< Shaded using material diffuse term */
5727 EVAS_3D_SHADE_MODE_PHONG, /**< Per-pixel phong shading */ 5796 EVAS_3D_SHADE_MODE_DIFFUSE,
5728 EVAS_3D_SHADE_MODE_NORMAL_MAP, /**< Per-pixel normal map shading */ 5797 /**< Per-vertex flat lighting */
5798 EVAS_3D_SHADE_MODE_FLAT,
5799 /**< Per-pixel phong shading */
5800 EVAS_3D_SHADE_MODE_PHONG,
5801 /**< Per-pixel normal map shading */
5802 EVAS_3D_SHADE_MODE_NORMAL_MAP
5729} Evas_3D_Shade_Mode; 5803} Evas_3D_Shade_Mode;
5730 5804
5731/** 5805/**
5732 * Material attributes 5806 * Material attributes
5807 *
5808 * @since 1.10
5733 * @ingroup Evas_3D_Types 5809 * @ingroup Evas_3D_Types
5734 */ 5810 */
5735typedef enum _Evas_3D_Material_Attrib 5811typedef enum _Evas_3D_Material_Attrib
5736{ 5812{
5737 EVAS_3D_MATERIAL_AMBIENT, /**< Ambient term */ 5813 EVAS_3D_MATERIAL_AMBIENT = 0, /**< Ambient term */
5738 EVAS_3D_MATERIAL_DIFFUSE, /**< Diffuse term */ 5814 EVAS_3D_MATERIAL_DIFFUSE, /**< Diffuse term */
5739 EVAS_3D_MATERIAL_SPECULAR, /**< Specular term */ 5815 EVAS_3D_MATERIAL_SPECULAR, /**< Specular term */
5740 EVAS_3D_MATERIAL_EMISSION, /**< Emission term */ 5816 EVAS_3D_MATERIAL_EMISSION, /**< Emission term */
5741 EVAS_3D_MATERIAL_NORMAL, /**< Normal map term */ 5817 EVAS_3D_MATERIAL_NORMAL, /**< Normal map term */
5742} Evas_3D_Material_Attrib; 5818} Evas_3D_Material_Attrib;
5743 5819
5744/** 5820/**
5745 * Mesh file type 5821 * Mesh file type
5822 *
5823 * @since 1.10
5746 * @ingroup Evas_3D_Types 5824 * @ingroup Evas_3D_Types
5747 */ 5825 */
5748typedef enum _Evas_3D_Mesh_File_Type 5826typedef enum _Evas_3D_Mesh_File_Type
5749{ 5827{
5750 EVAS_3D_MESH_FILE_TYPE_MD2, /**< Quake's MD2 mesh file format */ 5828 EVAS_3D_MESH_FILE_TYPE_MD2 = 0, /**< Quake's MD2 mesh file format */
5751} Evas_3D_Mesh_File_Type; 5829} Evas_3D_Mesh_File_Type;
5752 5830
5753typedef enum _Evas_3D_Pick_Type
5754{
5755 EVAS_3D_PICK_NODE,
5756 EVAS_3D_PICK_MESH,
5757} Evas_3D_Pick_Type;
5758
5759/** 5831/**
5760 * Set the scene on an image object. 5832 * Create a new scene object on the given Evas @p e canvas.
5761 *
5762 * @param obj Image object.
5763 * @param scene Scene object used as a content of the given image object.
5764 *
5765 * An image object can get its content from various sources like memory buffers,
5766 * image files and other evas object. A scene also can be a source for an image
5767 * object to display the rendered result onto evas canvas.
5768 * 5833 *
5769 * Any existing content (data, file or proxy source) will be removed after this 5834 * @param e The given canvas.
5770 * call. Setting @p src to @c NULL detach the 3D scene from the image object. 5835 * @return A new scene object.
5771 *
5772 * @ingroup Evas_3D_Scene
5773 */
5774EAPI void evas_object_image_3d_scene_set(Evas_Object *obj, Evas_3D_Scene *scene) EINA_ARG_NONNULL(1);
5775
5776/**
5777 * Get the current scene of an image object.
5778 * 5836 *
5779 * @param obj Image object. 5837 * @since 1.10
5780 * @return Scene object handle (if any), or @c NULL if there's no scene attached.
5781 *
5782 * @ingroup Evas_3D_Scene
5783 */
5784EAPI Evas_3D_Scene *evas_object_image_3d_scene_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5785
5786/**
5787 * Create a new scene on the given Evas @p e canvas.
5788 *
5789 * @param e The given canvas.
5790 * @return The created scene handle.
5791 * 5838 *
5792 * @ingroup Evas_3D_Scene 5839 * @ingroup Evas_3D_Scene
5793 */ 5840 */
5794EAPI Evas_3D_Scene *evas_3d_scene_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 5841EAPI Evas_3D_Scene *evas_3d_scene_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5795 5842
5796/** 5843/**
5797 * Delete a scene from its belonging Evas canvas.
5798 *
5799 * @param scene The given scene to be deleted.
5800 *
5801 * @ingroup Evas_3D_Scene
5802 */
5803EAPI void evas_3d_scene_del(Evas_3D_Scene *scene) EINA_ARG_NONNULL(1);
5804
5805/**
5806 * Get the Evas canvas where the given scene belongs to.
5807 *
5808 * @param scene The given scene.
5809 * @return The Evas canvas.
5810 *
5811 * @ingroup Evas_3D_Scene
5812 */
5813//EAPI Evas *evas_3d_scene_evas_get(const Evas_3D_Scene *scene) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5814
5815/**
5816 * Set the root node of a scene. 5844 * Set the root node of a scene.
5817 * 5845 *
5818 * @param scene The given scene. 5846 * @param scene A scene.
5819 * @param node A node which will be used as a root node for the scene. 5847 * @param node A node which will be used as a root node for the scene.
5848 *
5849 * @see evas_3d_scene_root_node_set()
5850 * @since 1.10
5820 * 5851 *
5821 * @ingroup Evas_3D_Scene 5852 * @ingroup Evas_3D_Scene
5822 */ 5853 */
@@ -5825,8 +5856,11 @@ EAPI void evas_3d_scene_root_node_set(Evas_3D_Scene *scene, Evas_3
5825/** 5856/**
5826 * Get the root node of a scene. 5857 * Get the root node of a scene.
5827 * 5858 *
5828 * @param scene The given scene. 5859 * @param scene The given scene.
5829 * @return The root node of the given scene. 5860 * @return The root node of the given scene.
5861 *
5862 * @see evas_3d_scene_root_node_get()
5863 * @since 1.10
5830 * 5864 *
5831 * @ingroup Evas_3D_Scene 5865 * @ingroup Evas_3D_Scene
5832 */ 5866 */
@@ -5835,8 +5869,11 @@ EAPI Evas_3D_Node *evas_3d_scene_root_node_get(const Evas_3D_Scene *scene)
5835/** 5869/**
5836 * Set the camera node of a scene. 5870 * Set the camera node of a scene.
5837 * 5871 *
5838 * @param scene The given scene. 5872 * @param scene The given scene.
5839 * @param node A node which will be used as a camera node for the scene. 5873 * @param node A node which will be used as a camera node for the scene.
5874 *
5875 * @see evas_3d_scene_camera_node_get()
5876 * @since 1.10
5840 * 5877 *
5841 * @ingroup Evas_3D_Scene 5878 * @ingroup Evas_3D_Scene
5842 */ 5879 */
@@ -5845,8 +5882,11 @@ EAPI void evas_3d_scene_camera_node_set(Evas_3D_Scene *scene, Evas
5845/** 5882/**
5846 * Get the camera node of a scene. 5883 * Get the camera node of a scene.
5847 * 5884 *
5848 * @param scene The given scene. 5885 * @param scene The given scene.
5849 * @return The camera node of the given scene. 5886 * @return The camera node of the given scene.
5887 *
5888 * @see evas_3d_scene_camera_node_set()
5889 * @since 1.10
5850 * 5890 *
5851 * @ingroup Evas_3D_Scene 5891 * @ingroup Evas_3D_Scene
5852 */ 5892 */
@@ -5855,13 +5895,16 @@ EAPI Evas_3D_Node *evas_3d_scene_camera_node_get(const Evas_3D_Scene *scene
5855/** 5895/**
5856 * Set the resolution of a scene. 5896 * Set the resolution of a scene.
5857 * 5897 *
5858 * @param scene The given scene. 5898 * @param scene The given scene.
5859 * @param w Width of the resolution. 5899 * @param w Width of the resolution.
5860 * @param h Height of the resolution. 5900 * @param h Height of the resolution.
5861 * 5901 *
5862 * A scene should be rendered to be displayed through an image objects. The 5902 * A scene should be rendered to be displayed through an image objects. The
5863 * resolution defines size of the internal surface holding the rendered result. 5903 * resolution defines size of the internal surface holding the rendered result.
5864 * 5904 *
5905 * @see evas_3d_scene_size_get()
5906 * @since 1.10
5907 *
5865 * @ingroup Evas_3D_Scene 5908 * @ingroup Evas_3D_Scene
5866 */ 5909 */
5867EAPI void evas_3d_scene_size_set(Evas_3D_Scene *scene, int w, int h) EINA_ARG_NONNULL(1); 5910EAPI void evas_3d_scene_size_set(Evas_3D_Scene *scene, int w, int h) EINA_ARG_NONNULL(1);
@@ -5869,10 +5912,13 @@ EAPI void evas_3d_scene_size_set(Evas_3D_Scene *scene, int w, int
5869/** 5912/**
5870 * Get the internal resolution of a scene. 5913 * Get the internal resolution of a scene.
5871 * 5914 *
5872 * @param scene The given scene. 5915 * @param scene The given scene.
5873 * @param w Pointer to receive width of the resolution. 5916 * @param w Pointer to receive width of the resolution.
5874 * @param h Pointer to receive height of the resolution. 5917 * @param h Pointer to receive height of the resolution.
5875 * 5918 *
5919 * @see evas_3d_scene_size_set()
5920 * @since 1.10
5921 *
5876 * @ingroup Evas_3D_Scene 5922 * @ingroup Evas_3D_Scene
5877 */ 5923 */
5878EAPI void evas_3d_scene_size_get(const Evas_3D_Scene *scene, int *w, int *h) EINA_ARG_NONNULL(1); 5924EAPI void evas_3d_scene_size_get(const Evas_3D_Scene *scene, int *w, int *h) EINA_ARG_NONNULL(1);
@@ -5880,11 +5926,11 @@ EAPI void evas_3d_scene_size_get(const Evas_3D_Scene *scene, int *
5880/** 5926/**
5881 * Set the background color of a scene. 5927 * Set the background color of a scene.
5882 * 5928 *
5883 * @param scene The given scene. 5929 * @param scene The given scene.
5884 * @param r Red component of the background color. 5930 * @param r Red component of the background color.
5885 * @param g Green component of the background color. 5931 * @param g Green component of the background color.
5886 * @param b Blue component of the background color. 5932 * @param b Blue component of the background color.
5887 * @param a Alpha component of the background color. 5933 * @param a Alpha component of the background color.
5888 * 5934 *
5889 * Background color defines initial color of pixels before a scene is rendered. 5935 * Background color defines initial color of pixels before a scene is rendered.
5890 * If you want to display a scene with background evas objects are still 5936 * If you want to display a scene with background evas objects are still
@@ -5892,6 +5938,9 @@ EAPI void evas_3d_scene_size_get(const Evas_3D_Scene *scene, int *
5892 * 5938 *
5893 * Default background color is (0.0, 0.0, 0.0, 0.0). 5939 * Default background color is (0.0, 0.0, 0.0, 0.0).
5894 * 5940 *
5941 * @see evas_3d_scene_background_color_get()
5942 * @since 1.10
5943 *
5895 * @ingroup Evas_3D_Scene 5944 * @ingroup Evas_3D_Scene
5896 */ 5945 */
5897EAPI void evas_3d_scene_background_color_set(Evas_3D_Scene *scene, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1); 5946EAPI void evas_3d_scene_background_color_set(Evas_3D_Scene *scene, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1);
@@ -5899,11 +5948,14 @@ EAPI void evas_3d_scene_background_color_set(Evas_3D_Scene *scene,
5899/** 5948/**
5900 * Get the background color of a scene. 5949 * Get the background color of a scene.
5901 * 5950 *
5902 * @param scene The given scene. 5951 * @param scene The given scene.
5903 * @param r Pointer to receive red component of the background color. 5952 * @param r Pointer to receive red component of the background color.
5904 * @param g Pointer to receive green component of the background color. 5953 * @param g Pointer to receive green component of the background color.
5905 * @param b Pointer to receive blue component of the background color. 5954 * @param b Pointer to receive blue component of the background color.
5906 * @param a Pointer to receive alpha component of the background color. 5955 * @param a Pointer to receive alpha component of the background color.
5956 *
5957 * @see evas_3d_scene_background_color_set()
5958 * @since 1.10
5907 * 5959 *
5908 * @ingroup Evas_3D_Scene 5960 * @ingroup Evas_3D_Scene
5909 */ 5961 */
@@ -5912,17 +5964,19 @@ EAPI void evas_3d_scene_background_color_get(const Evas_3D_Scene *
5912/** 5964/**
5913 * Get information on the most front visible mesh for the given position. 5965 * Get information on the most front visible mesh for the given position.
5914 * 5966 *
5915 * @param scene The given scene. 5967 * @param scene The given scene.
5916 * @param x X coordinate of the picking position. 5968 * @param x X coordinate of the picking position.
5917 * @param y Y coordinate of the picking position. 5969 * @param y Y coordinate of the picking position.
5918 * @param node Pointer to receive the node contains the picked mesh. 5970 * @param node Pointer to receive the node contains the picked mesh.
5919 * @param mesh Pointer to receive the picked mesh. 5971 * @param mesh Pointer to receive the picked mesh.
5920 * @param s Pointer to receive the texture "s" coordinate. 5972 * @param s Pointer to receive the texture "s" coordinate.
5921 * @param t Pointer to receive the texture "t" coordinate. 5973 * @param t Pointer to receive the texture "t" coordinate.
5922 * 5974 *
5923 * (x, y) is the screen coordinate of the given scene. That is, left-top is 5975 * (x, y) is the screen coordinate of the given scene. That is, left-top is
5924 * (0, 0) and right-bottom is (w, h) where (w, h) is the size of the scene. 5976 * (0, 0) and right-bottom is (w, h) where (w, h) is the size of the scene.
5925 * The texture coordinate is useful when using proxy texture source. 5977 * The texture coordinate may be useful when using proxy texture source.
5978 *
5979 * @since 1.10
5926 * 5980 *
5927 * @ingroup Evas_3D_Scene 5981 * @ingroup Evas_3D_Scene
5928 */ 5982 */
@@ -5931,9 +5985,12 @@ EAPI Eina_Bool evas_3d_scene_pick(const Evas_3D_Scene *scene, Evas_Real
5931/** 5985/**
5932 * Create a new node on the given Evas @p canvas. 5986 * Create a new node on the given Evas @p canvas.
5933 * 5987 *
5934 * @param e The given canvas. 5988 * @param e The given canvas.
5935 * @param type The type of the node. 5989 * @param type The type of the node.
5936 * @return The created node handle. 5990 * @return The created node handle.
5991 *
5992 * @see evas_3d_node_del()
5993 * @since 1.10
5937 * 5994 *
5938 * @ingroup Evas_3D_Node 5995 * @ingroup Evas_3D_Node
5939 */ 5996 */
@@ -5946,6 +6003,8 @@ EAPI Evas_3D_Node *evas_3d_node_add(Evas *e, Evas_3D_Node_Type type) EINA_W
5946 * 6003 *
5947 * @see evas_3d_node_add() 6004 * @see evas_3d_node_add()
5948 * 6005 *
6006 * @since 1.10
6007 *
5949 * @ingroup Evas_3D_Node 6008 * @ingroup Evas_3D_Node
5950 */ 6009 */
5951EAPI void evas_3d_node_del(Evas_3D_Node *node) EINA_ARG_NONNULL(1); 6010EAPI void evas_3d_node_del(Evas_3D_Node *node) EINA_ARG_NONNULL(1);
@@ -5954,36 +6013,30 @@ EAPI void evas_3d_node_del(Evas_3D_Node *node) EINA_ARG_NONNULL(1)
5954 * Get the type of the given node. 6013 * Get the type of the given node.
5955 * 6014 *
5956 * @param node The given node. 6015 * @param node The given node.
5957 * @return The type of the given node. 6016 * @return The type of the given node.
5958 * 6017 *
5959 * @see evas_3d_node_add() 6018 * @see evas_3d_node_add()
5960 * 6019 *
5961 * @ingroup Evas_3D_Node 6020 * @since 1.10
5962 */
5963EAPI Evas_3D_Node_Type evas_3d_node_type_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5964
5965/**
5966 * Get the Evas canvas where the given node belongs to.
5967 *
5968 * @param node The given node.
5969 * @return The Evas canvas.
5970 *
5971 * @see evas_3d_node_add()
5972 * 6021 *
5973 * @ingroup Evas_3D_Node 6022 * @ingroup Evas_3D_Node
5974 */ 6023 */
5975//EAPI Evas *evas_3d_node_evas_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 6024EAPI Evas_3D_Node_Type evas_3d_node_type_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5976 6025
5977/** 6026/**
5978 * Add a member node to the given node. 6027 * Add a member node to the given node.
5979 * 6028 *
5980 * @param node The given node which will be the parent. 6029 * @param node The given node which will be the parent.
5981 * @param member Node object to be added. 6030 * @param member Node object to be added.
5982 * 6031 *
5983 * Nodes can be constructed into N-ary tree structure like other ordinary scene 6032 * Nodes can be constructed into N-ary tree structure like other ordinary scene
5984 * graph. Basically a node inherit transforms from its parent. 6033 * graph. Basically a node inherit transforms from its parent.
5985 * 6034 *
5986 * @see evas_3d_node_parent_get() 6035 * @see evas_3d_node_parent_get()
6036 * @see evas_3d_node_member_del()
6037 * @see evas_3d_node_member_list_get()
6038 *
6039 * @since 1.10
5987 * 6040 *
5988 * @ingroup Evas_3D_Node 6041 * @ingroup Evas_3D_Node
5989 */ 6042 */
@@ -5992,8 +6045,8 @@ EAPI void evas_3d_node_member_add(Evas_3D_Node *node, Evas_3D_Node
5992/** 6045/**
5993 * Delete a member node from the given node. 6046 * Delete a member node from the given node.
5994 * 6047 *
5995 * @param node The given node. 6048 * @param node The given node.
5996 * @param member Member node to be deleted from the given node. 6049 * @param member Member node to be deleted from the given node.
5997 * 6050 *
5998 * @see evas_3d_node_member_add() 6051 * @see evas_3d_node_member_add()
5999 * 6052 *
@@ -6004,11 +6057,13 @@ EAPI void evas_3d_node_member_del(Evas_3D_Node *node, Evas_3D_Node
6004/** 6057/**
6005 * Get the parent node of the given node. 6058 * Get the parent node of the given node.
6006 * 6059 *
6007 * @param node The given node. 6060 * @param node The given node.
6008 * @return The parent node of the given node. 6061 * @return The parent node of the given node.
6009 * 6062 *
6010 * @see evas_3d_node_member_add() 6063 * @see evas_3d_node_member_add()
6011 * 6064 *
6065 * @since 1.10
6066 *
6012 * @ingroup Evas_3D_Node 6067 * @ingroup Evas_3D_Node
6013 */ 6068 */
6014EAPI Evas_3D_Node *evas_3d_node_parent_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 6069EAPI Evas_3D_Node *evas_3d_node_parent_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
@@ -6016,11 +6071,13 @@ EAPI Evas_3D_Node *evas_3d_node_parent_get(const Evas_3D_Node *node) EINA_W
6016/** 6071/**
6017 * Get the list of member nodes of the given node. 6072 * Get the list of member nodes of the given node.
6018 * 6073 *
6019 * @param node The given node. 6074 * @param node The given node.
6020 * @return The list of member nodes if any or @c NULL if there are none. 6075 * @return The list of member nodes if any or @c NULL if there are none.
6021 * 6076 *
6022 * @see evas_3d_node_member_add() 6077 * @see evas_3d_node_member_add()
6023 * 6078 *
6079 * @since 1.10
6080 *
6024 * @ingroup Evas_3D_Node 6081 * @ingroup Evas_3D_Node
6025 */ 6082 */
6026EAPI const Eina_List *evas_3d_node_member_list_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 6083EAPI const Eina_List *evas_3d_node_member_list_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
@@ -6041,10 +6098,10 @@ EAPI const Eina_List *evas_3d_node_member_list_get(const Evas_3D_Node *node) E
6041/** 6098/**
6042 * Set the position of the given node. 6099 * Set the position of the given node.
6043 * 6100 *
6044 * @param node The given node. 6101 * @param node The given node.
6045 * @param x X coordinate of the position. 6102 * @param x X coordinate of the position.
6046 * @param y Y coordinate of the position. 6103 * @param y Y coordinate of the position.
6047 * @param z Z coordinate of the position. 6104 * @param z Z coordinate of the position.
6048 * 6105 *
6049 * According to the inheritance flag, (x, y, z) can be a world space position or 6106 * According to the inheritance flag, (x, y, z) can be a world space position or
6050 * parent space position. 6107 * parent space position.
@@ -6052,6 +6109,9 @@ EAPI const Eina_List *evas_3d_node_member_list_get(const Evas_3D_Node *node) E
6052 * Default position is (0.0, 0.0, 0.0). 6109 * Default position is (0.0, 0.0, 0.0).
6053 * 6110 *
6054 * @see evas_3d_node_position_inherit_set() 6111 * @see evas_3d_node_position_inherit_set()
6112 * @see evas_3d_node_position_get()
6113 *
6114 * @since 1.10
6055 * 6115 *
6056 * @ingroup Evas_3D_Node_Transform 6116 * @ingroup Evas_3D_Node_Transform
6057 */ 6117 */
@@ -6060,11 +6120,11 @@ EAPI void evas_3d_node_position_set(Evas_3D_Node *node, Evas_Real
6060/** 6120/**
6061 * Set the orientation of the given node using quaternion. 6121 * Set the orientation of the given node using quaternion.
6062 * 6122 *
6063 * @param node The given node. 6123 * @param node The given node.
6064 * @param x X term of the orientation quaternion (w, x, y, z) 6124 * @param x X term of the orientation quaternion (w, x, y, z)
6065 * @param y Y term of the orientation quaternion (w, x, y, z) 6125 * @param y Y term of the orientation quaternion (w, x, y, z)
6066 * @param z Z term of the orientation quaternion (w, x, y, z) 6126 * @param z Z term of the orientation quaternion (w, x, y, z)
6067 * @param w W term of the orientation quaternion (w, x, y, z) 6127 * @param w W term of the orientation quaternion (w, x, y, z)
6068 * 6128 *
6069 * According the the inheritance flag, (w, x, y, z) can be a world space 6129 * According the the inheritance flag, (w, x, y, z) can be a world space
6070 * orientation or parent space orientation. 6130 * orientation or parent space orientation.
@@ -6073,35 +6133,25 @@ EAPI void evas_3d_node_position_set(Evas_3D_Node *node, Evas_Real
6073 * 6133 *
6074 * @see evas_3d_node_orientation_inherit_set() 6134 * @see evas_3d_node_orientation_inherit_set()
6075 * 6135 *
6076 * @ingroup Evas_3D_Node_Transform 6136 * @since 1.10
6077 */
6078EAPI void evas_3d_node_orientation_set(Evas_3D_Node *node, Evas_Real x, Evas_Real y, Evas_Real z, Evas_Real w) EINA_ARG_NONNULL(1);
6079
6080/**
6081 * Set the orientation of the given node using euler angle.
6082 *
6083 * @param node The given node.
6084 * @param x Rotation angle about X-axis.
6085 * @param y Rotation angle about Y-axis.
6086 * @param z Rotation angle about Z-axis.
6087 *
6088 * @see evas_3d_node_orientation_set()
6089 * 6137 *
6090 * @ingroup Evas_3D_Node_Transform 6138 * @ingroup Evas_3D_Node_Transform
6091 */ 6139 */
6092EAPI void evas_3d_node_orientation_euler_set(Evas_3D_Node *node, Evas_Real x, Evas_Real y, Evas_Real z) EINA_ARG_NONNULL(1); 6140EAPI void evas_3d_node_orientation_set(Evas_3D_Node *node, Evas_Real x, Evas_Real y, Evas_Real z, Evas_Real w) EINA_ARG_NONNULL(1);
6093 6141
6094/** 6142/**
6095 * Set the orientation of the given node using axis-angle. 6143 * Set the orientation of the given node using axis-angle.
6096 * 6144 *
6097 * @param node The given node. 6145 * @param node The given node.
6098 * @param angle Rotation angle. 6146 * @param angle Rotation angle.
6099 * @param x X term of the rotation axis. 6147 * @param x X term of the rotation axis.
6100 * @param y Y term of the rotation axis. 6148 * @param y Y term of the rotation axis.
6101 * @param z Z term of the rotation axis. 6149 * @param z Z term of the rotation axis.
6102 * 6150 *
6103 * @see evas_3d_node_orientation_set() 6151 * @see evas_3d_node_orientation_set()
6104 * 6152 *
6153 * @since 1.10
6154 *
6105 * @ingroup Evas_3D_Node_Transform 6155 * @ingroup Evas_3D_Node_Transform
6106 */ 6156 */
6107EAPI void evas_3d_node_orientation_angle_axis_set(Evas_3D_Node *node, Evas_Real angle, Evas_Real x, Evas_Real y, Evas_Real z) EINA_ARG_NONNULL(1); 6157EAPI void evas_3d_node_orientation_angle_axis_set(Evas_3D_Node *node, Evas_Real angle, Evas_Real x, Evas_Real y, Evas_Real z) EINA_ARG_NONNULL(1);
@@ -6109,10 +6159,10 @@ EAPI void evas_3d_node_orientation_angle_axis_set(Evas_3D_Node *no
6109/** 6159/**
6110 * Set the scale of the given node. 6160 * Set the scale of the given node.
6111 * 6161 *
6112 * @param node The given node. 6162 * @param node The given node.
6113 * @param x Scale factor along X-axis. 6163 * @param x Scale factor along X-axis.
6114 * @param y Scale factor along Y-axis. 6164 * @param y Scale factor along Y-axis.
6115 * @param z Scale factor along Z-axis. 6165 * @param z Scale factor along Z-axis.
6116 * 6166 *
6117 * According to the inheritance flag, (x, y, z) can be a world space scale or 6167 * According to the inheritance flag, (x, y, z) can be a world space scale or
6118 * parent space scale. Be careful when using non-uniform scale factor with 6168 * parent space scale. Be careful when using non-uniform scale factor with
@@ -6121,6 +6171,9 @@ EAPI void evas_3d_node_orientation_angle_axis_set(Evas_3D_Node *no
6121 * Default scale is (1.0, 1.0, 1.0). 6171 * Default scale is (1.0, 1.0, 1.0).
6122 * 6172 *
6123 * @see evas_3d_node_scale_inherit_set() 6173 * @see evas_3d_node_scale_inherit_set()
6174 * @see evas_3d_node_scale_get()
6175 *
6176 * @since 1.10
6124 * 6177 *
6125 * @ingroup Evas_3D_Node_Transform 6178 * @ingroup Evas_3D_Node_Transform
6126 */ 6179 */
@@ -6129,13 +6182,16 @@ EAPI void evas_3d_node_scale_set(Evas_3D_Node *node, Evas_Real x,
6129/** 6182/**
6130 * Get the position of the given node. 6183 * Get the position of the given node.
6131 * 6184 *
6132 * @param node The given node. 6185 * @param node The given node.
6133 * @param x Pointer to receive X coordinate of the position. 6186 * @param Space where the target position belongs to.
6134 * @param y Pointer to receive Y coordinate of the position. 6187 * @param x Pointer to receive X coordinate of the position.
6135 * @param z Pointer to receive Z coordinate of the position. 6188 * @param y Pointer to receive Y coordinate of the position.
6189 * @param z Pointer to receive Z coordinate of the position.
6136 * 6190 *
6137 * @see evas_3d_node_position_set() 6191 * @see evas_3d_node_position_set()
6138 * 6192 *
6193 * @since 1.10
6194 *
6139 * @ingroup Evas_3D_Node_Transform 6195 * @ingroup Evas_3D_Node_Transform
6140 */ 6196 */
6141EAPI void evas_3d_node_position_get(const Evas_3D_Node *node, Evas_3D_Space space, Evas_Real *x, Evas_Real *y, Evas_Real *z) EINA_ARG_NONNULL(1); 6197EAPI void evas_3d_node_position_get(const Evas_3D_Node *node, Evas_3D_Space space, Evas_Real *x, Evas_Real *y, Evas_Real *z) EINA_ARG_NONNULL(1);
@@ -6143,81 +6199,111 @@ EAPI void evas_3d_node_position_get(const Evas_3D_Node *node, Evas
6143/** 6199/**
6144 * Get the orientation of the given node as quaternion. 6200 * Get the orientation of the given node as quaternion.
6145 * 6201 *
6146 * @param node The given node. 6202 * @param node The given node.
6147 * @param x Pointer to receive X term of the orientation quaternion. 6203 * @param space Space where the target position belongs to.
6148 * @param y Pointer to receive Y term of the orientation quaternion. 6204 * @param x Pointer to receive X term of the orientation quaternion.
6149 * @param z Pointer to receive Z term of the orientation quaternion. 6205 * @param y Pointer to receive Y term of the orientation quaternion.
6150 * @param w Pointer to receive W term of the orientation quaternion. 6206 * @param z Pointer to receive Z term of the orientation quaternion.
6207 * @param w Pointer to receive W term of the orientation quaternion.
6151 * 6208 *
6152 * @see evas_3d_node_orientation_set() 6209 * @see evas_3d_node_orientation_set()
6153 * 6210 *
6211 * @since 1.10
6212 *
6154 * @ingroup Evas_3D_Node_Transform 6213 * @ingroup Evas_3D_Node_Transform
6155 */ 6214 */
6156EAPI void evas_3d_node_orientation_get(const Evas_3D_Node *node, Evas_3D_Space space, Evas_Real *x, Evas_Real *y, Evas_Real *z, Evas_Real *w) EINA_ARG_NONNULL(1); 6215EAPI void evas_3d_node_orientation_get(const Evas_3D_Node *node, Evas_3D_Space space, Evas_Real *x, Evas_Real *y, Evas_Real *z, Evas_Real *w) EINA_ARG_NONNULL(1);
6216
6217/**
6218 * Get the scale of the given node
6219 *
6220 * @param node The given node.
6221 * @param space Space where the target position belongs to.
6222 * @param x Scale facator to receive along X-axis.
6223 * @param x Scale facator to receive along Y-axis.
6224 * @param x Scale facator to receive along Z-axis.
6225 *
6226 * @see evas_3d_node_scale_set()
6227 *
6228 * @since 1.10
6229 *
6230 * @ingroup Evas_3D_Node_Transform
6231 */
6157EAPI void evas_3d_node_scale_get(const Evas_3D_Node *node, Evas_3D_Space space, Evas_Real *x, Evas_Real *y, Evas_Real *z) EINA_ARG_NONNULL(1); 6232EAPI void evas_3d_node_scale_get(const Evas_3D_Node *node, Evas_3D_Space space, Evas_Real *x, Evas_Real *y, Evas_Real *z) EINA_ARG_NONNULL(1);
6158 6233
6159/** 6234/**
6160 * Set the position inheritance flag of the given node. 6235 * Set the position inheritance of the given node.
6161 * 6236 *
6162 * @param node The given node. 6237 * @param node The given node.
6163 * @param inherit Whether to inherit parent position @c EINA_TRUE or not @c EINA_FALSE. 6238 * @param inherit Whether to inherit parent position @c EINA_TRUE or not
6239 * @c EINA_FALSE.
6164 * 6240 *
6165 * When inheritance is enabled, a node's world space position is determined by 6241 * When inheritance is enabled, a node's world space position is determined by
6166 * adding the parent node's world position and the node's position, otherwise, 6242 * adding the parent node's world position and the node's position, otherwise,
6167 * the node's position will be the world space position. 6243 * the node's position will be the world space position.
6168 * 6244 *
6245 * @since 1.10
6246 *
6169 * @ingroup Evas_3D_Node_Transform 6247 * @ingroup Evas_3D_Node_Transform
6170 */ 6248 */
6171EAPI void evas_3d_node_position_inherit_set(Evas_3D_Node *node, Eina_Bool inherit) EINA_ARG_NONNULL(1); 6249EAPI void evas_3d_node_position_inherit_set(Evas_3D_Node *node, Eina_Bool inherit) EINA_ARG_NONNULL(1);
6172 6250
6173/** 6251/**
6174 * Set the orientation inheritance flag of the given node. 6252 * Set the orientation inheritance of the given node.
6175 * 6253 *
6176 * @param node The given node. 6254 * @param node The given node.
6177 * @param inherit Whether to inherit parent orientation @c EINA_TRUE or not @c EINA_FALSE. 6255 * @param inherit Whether to inherit parent orientation @c EINA_TRUE or not
6256 * @c EINA_FALSE.
6178 * 6257 *
6179 * When inheritance is enabled, a node's world space orientation is determined 6258 * When inheritance is enabled, a node's world space orientation is determined
6180 * by multiplying the parent node's world orientation and the node's 6259 * by multiplying the parent node's world orientation and the node's
6181 * orientation, otherwise, the node's orientation will be the world space 6260 * orientation, otherwise, the node's orientation will be the world space
6182 * orientation. 6261 * orientation.
6183 * 6262 *
6263 * @since 1.10
6264 *
6184 * @ingroup Evas_3D_Node_Transform 6265 * @ingroup Evas_3D_Node_Transform
6185 */ 6266 */
6186EAPI void evas_3d_node_orientation_inherit_set(Evas_3D_Node *node, Eina_Bool inherit) EINA_ARG_NONNULL(1); 6267EAPI void evas_3d_node_orientation_inherit_set(Evas_3D_Node *node, Eina_Bool inherit) EINA_ARG_NONNULL(1);
6187 6268
6188/** 6269/**
6189 * Set the scale inheritance flag of the given node. 6270 * Set the scale inheritance of the given node.
6190 * 6271 *
6191 * @param node The given node. 6272 * @param node The given node.
6192 * @param inherit Whether to inherit parent scale @c EINA_TRUE or not @c EINA_FALSE. 6273 * @param inherit Whether to inherit parent scale @c EINA_TRUE or not
6274 * @c EINA_FALSE.
6193 * 6275 *
6194 * When inheritance is enabled, a node's world space scale is determined by 6276 * When inheritance is enabled, a node's world space scale is determined by
6195 * multiplying the parent node's world scale and the node's scale, otherwise, 6277 * multiplying the parent node's world scale and the node's scale, otherwise,
6196 * the node's scale will be the world space scale. 6278 * the node's scale will be the world space scale.
6197 * 6279 *
6280 * @since 1.10
6281 *
6198 * @ingroup Evas_3D_Node_Transform 6282 * @ingroup Evas_3D_Node_Transform
6199 */ 6283 */
6200EAPI void evas_3d_node_scale_inherit_set(Evas_3D_Node *node, Eina_Bool inherit) EINA_ARG_NONNULL(1); 6284EAPI void evas_3d_node_scale_inherit_set(Evas_3D_Node *node, Eina_Bool inherit) EINA_ARG_NONNULL(1);
6201 6285
6202/** 6286/**
6203 * Get the position inheritance flag of the given node. 6287 * Get the position inheritance of the given node.
6204 * 6288 *
6205 * @param node The given node. 6289 * @param node The given node.
6206 * @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not. 6290 * @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
6207 * 6291 *
6208 * @see evas_3d_node_position_inherit_set() 6292 * @see evas_3d_node_position_inherit_set()
6293 * @since 1.10
6209 * 6294 *
6210 * @ingroup Evas_3D_Node_Transform 6295 * @ingroup Evas_3D_Node_Transform
6211 */ 6296 */
6212EAPI Eina_Bool evas_3d_node_position_inherit_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 6297EAPI Eina_Bool evas_3d_node_position_inherit_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6213 6298
6214/** 6299/**
6215 * Get the orientation inheritance flag of the given node. 6300 * Get the orientation inheritance of the given node.
6216 * 6301 *
6217 * @param node The given node. 6302 * @param node The given node.
6218 * @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not. 6303 * @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
6219 * 6304 *
6220 * @see evas_3d_node_orientation_inherit_set() 6305 * @see evas_3d_node_orientation_inherit_set()
6306 * @since 1.10
6221 * 6307 *
6222 * @ingroup Evas_3D_Node_Transform 6308 * @ingroup Evas_3D_Node_Transform
6223 */ 6309 */
@@ -6226,10 +6312,11 @@ EAPI Eina_Bool evas_3d_node_orientation_inherit_get(const Evas_3D_Node
6226/** 6312/**
6227 * Get the scale inheritance flag of the given node. 6313 * Get the scale inheritance flag of the given node.
6228 * 6314 *
6229 * @param node The given node. 6315 * @param node The given node.
6230 * @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not. 6316 * @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
6231 * 6317 *
6232 * @see evas_3d_node_scale_inherit_set() 6318 * @see evas_3d_node_scale_inherit_set()
6319 * @since 1.10
6233 * 6320 *
6234 * @ingroup Evas_3D_Node_Transform 6321 * @ingroup Evas_3D_Node_Transform
6235 */ 6322 */
@@ -6238,15 +6325,15 @@ EAPI Eina_Bool evas_3d_node_scale_inherit_get(const Evas_3D_Node *node)
6238/** 6325/**
6239 * Rotate the given node to look at desired position. 6326 * Rotate the given node to look at desired position.
6240 * 6327 *
6241 * @param node The given node. 6328 * @param node The given node.
6242 * @param target_space Space where the target position belongs to. 6329 * @param target_space Space where the target position belongs to.
6243 * @param x X coordinate of the target position. 6330 * @param x X coordinate of the target position.
6244 * @param y Y coordinate of the target position. 6331 * @param y Y coordinate of the target position.
6245 * @param z Z coordinate of the target position. 6332 * @param z Z coordinate of the target position.
6246 * @param up_space Space where the up vector belongs to. 6333 * @param up_space Space where the up vector belongs to.
6247 * @param ux X term of the up vector. 6334 * @param ux X term of the up vector.
6248 * @param uy Y term of the up vector. 6335 * @param uy Y term of the up vector.
6249 * @param uz Z term of the up vector. 6336 * @param uz Z term of the up vector.
6250 * 6337 *
6251 * This function rotate the given node so that its forward vector (negative 6338 * This function rotate the given node so that its forward vector (negative
6252 * Z-axis) points to the desired position and the up vector coincide with the 6339 * Z-axis) points to the desired position and the up vector coincide with the
@@ -6254,6 +6341,8 @@ EAPI Eina_Bool evas_3d_node_scale_inherit_get(const Evas_3D_Node *node)
6254 * 6341 *
6255 * @see evas_3d_node_orientation_set() 6342 * @see evas_3d_node_orientation_set()
6256 * 6343 *
6344 * @since 1.10
6345 *
6257 * @ingroup Evas_3D_Node_Transform 6346 * @ingroup Evas_3D_Node_Transform
6258 */ 6347 */
6259EAPI void evas_3d_node_look_at_set(Evas_3D_Node *node, Evas_3D_Space target_space, Evas_Real x, Evas_Real y, Evas_Real z, Evas_3D_Space up_space, Evas_Real ux, Evas_Real uy, Evas_Real uz) EINA_ARG_NONNULL(1); 6348EAPI void evas_3d_node_look_at_set(Evas_3D_Node *node, Evas_3D_Space target_space, Evas_Real x, Evas_Real y, Evas_Real z, Evas_3D_Space up_space, Evas_Real ux, Evas_Real uy, Evas_Real uz) EINA_ARG_NONNULL(1);
@@ -6261,14 +6350,16 @@ EAPI void evas_3d_node_look_at_set(Evas_3D_Node *node, Evas_3D_Spa
6261/** 6350/**
6262 * Set a camera to the given node. 6351 * Set a camera to the given node.
6263 * 6352 *
6264 * @param node The given node. 6353 * @param node The given node.
6265 * @param camera The camera to be set. 6354 * @param camera The camera to be set.
6266 * 6355 *
6267 * If the node is not of type EVAS_3D_NODE_TYPE_CAMERA, error message will be 6356 * @warning If the node type should be EVAS_3D_NODE_TYPE_CAMERA. Otherwise
6268 * generated and nothing happens. 6357 * nothing will be happened.
6269 * 6358 *
6270 * @see evas_3d_node_add() 6359 * @see evas_3d_node_add()
6271 * 6360 *
6361 * @since 1.10
6362 *
6272 * @ingroup Evas_3D_Node 6363 * @ingroup Evas_3D_Node
6273 */ 6364 */
6274EAPI void evas_3d_node_camera_set(Evas_3D_Node *node, Evas_3D_Camera *camera) EINA_ARG_NONNULL(1); 6365EAPI void evas_3d_node_camera_set(Evas_3D_Node *node, Evas_3D_Camera *camera) EINA_ARG_NONNULL(1);
@@ -6276,10 +6367,11 @@ EAPI void evas_3d_node_camera_set(Evas_3D_Node *node, Evas_3D_Came
6276/** 6367/**
6277 * Get the camera of the given node. 6368 * Get the camera of the given node.
6278 * 6369 *
6279 * @param node The given node. 6370 * @param node The given node.
6280 * @return The camera of the given node if any, or @c NULL if there're none. 6371 * @return The camera of the given node if any, or @c NULL if there's none.
6281 * 6372 *
6282 * @see evas_3d_node_camera_set() 6373 * @see evas_3d_node_camera_set()
6374 * @since 1.10
6283 * 6375 *
6284 * @ingroup Evas_3D_Node 6376 * @ingroup Evas_3D_Node
6285 */ 6377 */
@@ -6288,13 +6380,14 @@ EAPI Evas_3D_Camera *evas_3d_node_camera_get(const Evas_3D_Node *node) EINA_W
6288/** 6380/**
6289 * Set the light of the given node. 6381 * Set the light of the given node.
6290 * 6382 *
6291 * @param node The given node. 6383 * @param node The given node.
6292 * @param light The light to be set. 6384 * @param light The light to be set.
6293 * 6385 *
6294 * If the node is not of type EVAS_3D_NODE_TYPE_LIGHT, error message will be 6386 * @warning If the node type should be EVAS_3D_NODE_TYPE_LIGHT. Otherwise
6295 * generated and nothing happens. 6387 * nothing will be happened.
6296 * 6388 *
6297 * @see evas_3d_node_add() 6389 * @see evas_3d_node_add()
6390 * @since 1.10
6298 * 6391 *
6299 * @ingroup Evas_3D_Node 6392 * @ingroup Evas_3D_Node
6300 */ 6393 */
@@ -6303,10 +6396,11 @@ EAPI void evas_3d_node_light_set(Evas_3D_Node *node, Evas_3D_Light
6303/** 6396/**
6304 * Get the light of the given node. 6397 * Get the light of the given node.
6305 * 6398 *
6306 * @param node The given node. 6399 * @param node The given node.
6307 * @return The light of the given node if any, or @c NULL if there're none. 6400 * @return The light of the given node if any, or @c NULL if there's none.
6308 * 6401 *
6309 * @see evas_3d_node_light_set() 6402 * @see evas_3d_node_light_set()
6403 * @since 1.10
6310 * 6404 *
6311 * @ingroup Evas_3D_Node 6405 * @ingroup Evas_3D_Node
6312 */ 6406 */
@@ -6315,13 +6409,14 @@ EAPI Evas_3D_Light *evas_3d_node_light_get(const Evas_3D_Node *node) EINA_WA
6315/** 6409/**
6316 * Add a mesh to the given node. 6410 * Add a mesh to the given node.
6317 * 6411 *
6318 * @param node The given node. 6412 * @param node The given node.
6319 * @param mesh The mesh to be added. 6413 * @param mesh The mesh to be added.
6320 * 6414 *
6321 * If the node is not of type EVAS_3D_NODE_TYPE_MESH, error message will be 6415 * @warning If the node type should be EVAS_3D_NODE_TYPE_MESH. Otherwise
6322 * generated and nothing happens. 6416 * nothing will be happened.
6323 * 6417 *
6324 * @see evas_3d_node_add() 6418 * @see evas_3d_node_add()
6419 * @since 1.10
6325 * 6420 *
6326 * @ingroup Evas_3D_Node 6421 * @ingroup Evas_3D_Node
6327 */ 6422 */
@@ -6330,13 +6425,14 @@ EAPI void evas_3d_node_mesh_add(Evas_3D_Node *node, Evas_3D_Mesh *
6330/** 6425/**
6331 * Delete a mesh from the given node. 6426 * Delete a mesh from the given node.
6332 * 6427 *
6333 * @param node The given node. 6428 * @param node The given node.
6334 * @param mesh The mesh to be deleted. 6429 * @param mesh The mesh to be deleted.
6335 * 6430 *
6336 * If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh does not 6431 * @warning If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh
6337 * belong to the given node, error message will be gnerated and nothing happens. 6432 * does not belong to the given node, nothing will be happened.
6338 * 6433 *
6339 * @see evas_3d_node_mesh_add() 6434 * @see evas_3d_node_mesh_add()
6435 * @since 1.10
6340 * 6436 *
6341 * @ingroup Evas_3D_Node 6437 * @ingroup Evas_3D_Node
6342 */ 6438 */
@@ -6345,14 +6441,16 @@ EAPI void evas_3d_node_mesh_del(Evas_3D_Node *node, Evas_3D_Mesh *
6345/** 6441/**
6346 * Get the list of meshes of the given node. 6442 * Get the list of meshes of the given node.
6347 * 6443 *
6348 * @param node The given node. 6444 * @param node The given node.
6349 * @return The list of meshes if any, or @c NULL if there're none. 6445 * @return The list of meshes if any, or @c NULL if there're none.
6446 *
6447 * If there're no meshes in the given node, @c NULL will be returned.
6350 * 6448 *
6351 * If the node is not of type EVAS_3D_NODE_TYPE_MESH, error message will be 6449 * @warning If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh
6352 * generated and @c NULL will be returned. If there're no meshes in the given 6450 * does not belong to the given node, @c NULL will be returned.
6353 * node, @c NULL will be returned.
6354 * 6451 *
6355 * @see evas_3d_node_mesh_add() 6452 * @see evas_3d_node_mesh_add()
6453 * @since 1.10
6356 * 6454 *
6357 * @ingroup Evas_3D_Node 6455 * @ingroup Evas_3D_Node
6358 */ 6456 */
@@ -6361,9 +6459,9 @@ EAPI const Eina_List *evas_3d_node_mesh_list_get(const Evas_3D_Node *node) EIN
6361/** 6459/**
6362 * Set the animation frame number of the given node for the given mesh. 6460 * Set the animation frame number of the given node for the given mesh.
6363 * 6461 *
6364 * @param node The given node. 6462 * @param node The given node.
6365 * @param mesh The given mesh. 6463 * @param mesh The given mesh.
6366 * @param frame The animation frame number. 6464 * @param frame The animation frame number.
6367 * 6465 *
6368 * If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh does not 6466 * If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh does not
6369 * belong to the given mesh error mesh will be generated and nothing happens. 6467 * belong to the given mesh error mesh will be generated and nothing happens.
@@ -6371,6 +6469,7 @@ EAPI const Eina_List *evas_3d_node_mesh_list_get(const Evas_3D_Node *node) EIN
6371 * Default mesh frame is 0. 6469 * Default mesh frame is 0.
6372 * 6470 *
6373 * @see evas_3d_node_mesh_add() 6471 * @see evas_3d_node_mesh_add()
6472 * @since 1.10
6374 * 6473 *
6375 * @ingroup Evas_3D_Node 6474 * @ingroup Evas_3D_Node
6376 */ 6475 */
@@ -6379,14 +6478,15 @@ EAPI void evas_3d_node_mesh_frame_set(Evas_3D_Node *node, Evas_3D_
6379/** 6478/**
6380 * Set the animation frame number of the given node for the given mesh. 6479 * Set the animation frame number of the given node for the given mesh.
6381 * 6480 *
6382 * @param node The given node. 6481 * @param node The given node.
6383 * @param mesh The given mesh. 6482 * @param mesh The given mesh.
6384 * @param frame The animation frame number. 6483 * @param frame The animation frame number.
6385 * 6484 *
6386 * If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh does not 6485 * If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh does not
6387 * belong to the given mesh error mesh will be generated and nothing happens. 6486 * belong to the given mesh, nothing will be happened.
6388 * 6487 *
6389 * @see evas_3d_node_mesh_add() 6488 * @see evas_3d_node_mesh_add()
6489 * @since 1.10
6390 * 6490 *
6391 * @ingroup Evas_3D_Node 6491 * @ingroup Evas_3D_Node
6392 */ 6492 */
@@ -6395,8 +6495,10 @@ EAPI int evas_3d_node_mesh_frame_get(const Evas_3D_Node *node, Ev
6395/** 6495/**
6396 * Create a new camera on the given Evas @p canvas. 6496 * Create a new camera on the given Evas @p canvas.
6397 * 6497 *
6398 * @param e The given canvas. 6498 * @param e The given canvas.
6399 * @return The created camera handle. 6499 * @return The created camera handle.
6500 *
6501 * @since 1.10
6400 * 6502 *
6401 * @ingroup Evas_3D_Camera 6503 * @ingroup Evas_3D_Camera
6402 */ 6504 */
@@ -6405,31 +6507,21 @@ EAPI Evas_3D_Camera *evas_3d_camera_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA
6405/** 6507/**
6406 * Delete a node from its belonging Evas canvas. 6508 * Delete a node from its belonging Evas canvas.
6407 * 6509 *
6408 * @param camera The given camera. 6510 * @param camera The given camera.
6409 * 6511 *
6410 * @see evas_3d_camera_add() 6512 * @see evas_3d_camera_add()
6513 * @since 1.10
6411 * 6514 *
6412 * @ingroup Evas_3D_Camera 6515 * @ingroup Evas_3D_Camera
6413 */ 6516 */
6414EAPI void evas_3d_camera_del(Evas_3D_Camera *camera) EINA_ARG_NONNULL(1); 6517EAPI void evas_3d_camera_del(Evas_3D_Camera *camera) EINA_ARG_NONNULL(1);
6415 6518
6416/** 6519/**
6417 * Get the Evas canvas where the given node belongs to.
6418 *
6419 * @param camera The given camera.
6420 * @return The Evas canvas.
6421 *
6422 * @see evas_3d_node_add()
6423 *
6424 * @ingroup Evas_3D_Camera
6425 */
6426//EAPI Evas *evas_3d_camera_evas_get(const Evas_3D_Camera *camera) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6427
6428/**
6429 * Set the projection matrix of the given camera. 6520 * Set the projection matrix of the given camera.
6430 * 6521 *
6431 * @param camera The given camera. 6522 * @param camera The given camera.
6432 * @param matrix Pointer to the array of 16 Evas_Real values in column major order. 6523 * @param matrix Pointer to the array of 16 Evas_Real values in column major
6524 * order.
6433 * 6525 *
6434 * Default projection matrix is identity matrix. 6526 * Default projection matrix is identity matrix.
6435 * 6527 *
@@ -6437,6 +6529,8 @@ EAPI void evas_3d_camera_del(Evas_3D_Camera *camera) EINA_ARG_NONN
6437 * @see evas_3d_camera_projection_ortho_set() 6529 * @see evas_3d_camera_projection_ortho_set()
6438 * @see evas_3d_camera_projection_frustum_set() 6530 * @see evas_3d_camera_projection_frustum_set()
6439 * 6531 *
6532 * @since 1.10
6533 *
6440 * @ingroup Evas_3D_Camera 6534 * @ingroup Evas_3D_Camera
6441 */ 6535 */
6442EAPI void evas_3d_camera_projection_matrix_set(Evas_3D_Camera *camera, const Evas_Real *matrix) EINA_ARG_NONNULL(1); 6536EAPI void evas_3d_camera_projection_matrix_set(Evas_3D_Camera *camera, const Evas_Real *matrix) EINA_ARG_NONNULL(1);
@@ -6444,11 +6538,14 @@ EAPI void evas_3d_camera_projection_matrix_set(Evas_3D_Camera *cam
6444/** 6538/**
6445 * Get the projection matrix of the given camera. 6539 * Get the projection matrix of the given camera.
6446 * 6540 *
6447 * @param camera The given camera. 6541 * @param camera The given camera.
6448 * @param matrix Pointer to receive the 16 Evas_Real values in column major order. 6542 * @param matrix Pointer to receive the 16 Evas_Real values in column major
6543 * order.
6449 * 6544 *
6450 * @see evas_3d_camera_projection_matrix_set() 6545 * @see evas_3d_camera_projection_matrix_set()
6451 * 6546 *
6547 * @since 1.10
6548 *
6452 * @ingroup Evas_3D_Camera 6549 * @ingroup Evas_3D_Camera
6453 */ 6550 */
6454EAPI void evas_3d_camera_projection_matrix_get(const Evas_3D_Camera *camera, Evas_Real *matrix) EINA_ARG_NONNULL(1, 2); 6551EAPI void evas_3d_camera_projection_matrix_get(const Evas_3D_Camera *camera, Evas_Real *matrix) EINA_ARG_NONNULL(1, 2);
@@ -6456,13 +6553,14 @@ EAPI void evas_3d_camera_projection_matrix_get(const Evas_3D_Camer
6456/** 6553/**
6457 * Set the projection matrix of the given camera with perspective projection. 6554 * Set the projection matrix of the given camera with perspective projection.
6458 * 6555 *
6459 * @param camera The given camera. 6556 * @param camera The given camera.
6460 * @param fovy Field of view angle in Y direction. 6557 * @param fovy Field of view angle in Y direction.
6461 * @param aspect Aspect ratio. 6558 * @param aspect Aspect ratio.
6462 * @param near Distance to near clipping plane. 6559 * @param near Distance to near clipping plane.
6463 * @param far Distance to far clipping plane. 6560 * @param far Distance to far clipping plane.
6464 * 6561 *
6465 * @see evas_3d_camera_projection_matrix_set() 6562 * @see evas_3d_camera_projection_matrix_set()
6563 * @since 1.10
6466 * 6564 *
6467 * @ingroup Evas_3D_Camera 6565 * @ingroup Evas_3D_Camera
6468 */ 6566 */
@@ -6471,15 +6569,16 @@ EAPI void evas_3d_camera_projection_perspective_set(Evas_3D_Camera
6471/** 6569/**
6472 * Set the projection matrix of the given camera with frustum projection. 6570 * Set the projection matrix of the given camera with frustum projection.
6473 * 6571 *
6474 * @param camera The given camera. 6572 * @param camera The given camera.
6475 * @param left Left X coordinate of the near clipping plane. 6573 * @param left Left X coordinate of the near clipping plane.
6476 * @param right Right X coordinate of the near clipping plane. 6574 * @param right Right X coordinate of the near clipping plane.
6477 * @param top Top Y coordinate of the near clipping plane. 6575 * @param top Top Y coordinate of the near clipping plane.
6478 * @param bottom Bottom Y coordinate of the near clipping plane. 6576 * @param bottom Bottom Y coordinate of the near clipping plane.
6479 * @param near Distance to near clipping plane. 6577 * @param near Distance to near clipping plane.
6480 * @param far Distance to far clipping plane. 6578 * @param far Distance to far clipping plane.
6481 * 6579 *
6482 * @see evas_3d_camera_projection_matrix_set() 6580 * @see evas_3d_camera_projection_matrix_set()
6581 * @since 1.10
6483 * 6582 *
6484 * @ingroup Evas_3D_Camera 6583 * @ingroup Evas_3D_Camera
6485 */ 6584 */
@@ -6488,15 +6587,16 @@ EAPI void evas_3d_camera_projection_frustum_set(Evas_3D_Camera *ca
6488/** 6587/**
6489 * Set the projection matrix of the given camera with orthogonal projection. 6588 * Set the projection matrix of the given camera with orthogonal projection.
6490 * 6589 *
6491 * @param camera The given camera. 6590 * @param camera The given camera.
6492 * @param left Left X coordinate of the near clipping plane. 6591 * @param left Left X coordinate of the near clipping plane.
6493 * @param right Right X coordinate of the near clipping plane. 6592 * @param right Right X coordinate of the near clipping plane.
6494 * @param top Top Y coordinate of the near clipping plane. 6593 * @param top Top Y coordinate of the near clipping plane.
6495 * @param bottom Bottom Y coordinate of the near clipping plane. 6594 * @param bottom Bottom Y coordinate of the near clipping plane.
6496 * @param near Distance to near clipping plane. 6595 * @param near Distance to near clipping plane.
6497 * @param far Distance to far clipping plane. 6596 * @param far Distance to far clipping plane.
6498 * 6597 *
6499 * @see evas_3d_camera_projection_matrix_set() 6598 * @see evas_3d_camera_projection_matrix_set()
6599 * @since 1.10
6500 * 6600 *
6501 * @ingroup Evas_3D_Camera 6601 * @ingroup Evas_3D_Camera
6502 */ 6602 */
@@ -6505,8 +6605,10 @@ EAPI void evas_3d_camera_projection_ortho_set(Evas_3D_Camera *came
6505/** 6605/**
6506 * Create a new light on the given Evas @p canvas. 6606 * Create a new light on the given Evas @p canvas.
6507 * 6607 *
6508 * @param e The given canvas. 6608 * @param e The given canvas.
6509 * @return The created light handle. 6609 * @return The created light handle.
6610 *
6611 * @since 1.10
6510 * 6612 *
6511 * @ingroup Evas_3D_Light 6613 * @ingroup Evas_3D_Light
6512 */ 6614 */
@@ -6515,31 +6617,21 @@ EAPI Evas_3D_Light *evas_3d_light_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_
6515/** 6617/**
6516 * Delete a node from its belonging Evas canvas. 6618 * Delete a node from its belonging Evas canvas.
6517 * 6619 *
6518 * @param light The given light. 6620 * @param light The given light.
6519 * 6621 *
6520 * @see evas_3d_light_add() 6622 * @see evas_3d_light_add()
6623 * @since 1.10
6521 * 6624 *
6522 * @ingroup Evas_3D_Light 6625 * @ingroup Evas_3D_Light
6523 */ 6626 */
6524EAPI void evas_3d_light_del(Evas_3D_Light *light) EINA_ARG_NONNULL(1); 6627EAPI void evas_3d_light_del(Evas_3D_Light *light) EINA_ARG_NONNULL(1);
6525 6628
6526/** 6629/**
6527 * Get the Evas canvas where the given node belongs to.
6528 *
6529 * @param light The given light.
6530 * @return The Evas canvas.
6531 *
6532 * @see evas_3d_node_add()
6533 *
6534 * @ingroup Evas_3D_Light
6535 */
6536//EAPI Evas *evas_3d_light_evas_get(const Evas_3D_Light *light) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6537
6538/**
6539 * Set the directional flag of the given light. 6630 * Set the directional flag of the given light.
6540 * 6631 *
6541 * @param light The given light. 6632 * @param light The given light.
6542 * @param directional Whether the light is directional (@c EINA_TRUE), or not (@c EINA_FALSE). 6633 * @param directional Whether the light is directional (@c EINA_TRUE), or not
6634 * (@c EINA_FALSE).
6543 * 6635 *
6544 * Directional light is a type of light which is infinitely far away with no 6636 * Directional light is a type of light which is infinitely far away with no
6545 * attenuation. The light direction is determined by the containing node's 6637 * attenuation. The light direction is determined by the containing node's
@@ -6548,6 +6640,7 @@ EAPI void evas_3d_light_del(Evas_3D_Light *light) EINA_ARG_NONNULL
6548 * By default, directional is not enabled. 6640 * By default, directional is not enabled.
6549 * 6641 *
6550 * @see evas_3d_node_look_at_set() 6642 * @see evas_3d_node_look_at_set()
6643 * @since 1.10
6551 * 6644 *
6552 * @ingroup Evas_3D_Light 6645 * @ingroup Evas_3D_Light
6553 */ 6646 */
@@ -6556,10 +6649,11 @@ EAPI void evas_3d_light_directional_set(Evas_3D_Light *light, Eina
6556/** 6649/**
6557 * Get the directional flag of the given light. 6650 * Get the directional flag of the given light.
6558 * 6651 *
6559 * @param light The given light. 6652 * @param light The given light.
6560 * @return @c EINA_TRUE if the light is directional or @c EINA_FALSE if not. 6653 * @return @c EINA_TRUE if the light is directional or @c EINA_FALSE if not.
6561 * 6654 *
6562 * @see evas_3d_light_directional_set() 6655 * @see evas_3d_light_directional_set()
6656 * @since 1.10
6563 * 6657 *
6564 * @ingroup Evas_3D_Light 6658 * @ingroup Evas_3D_Light
6565 */ 6659 */
@@ -6568,14 +6662,16 @@ EAPI Eina_Bool evas_3d_light_directional_get(const Evas_3D_Light *light
6568/** 6662/**
6569 * Set the ambient color of the given light. 6663 * Set the ambient color of the given light.
6570 * 6664 *
6571 * @param light The given light. 6665 * @param light The given light.
6572 * @param r Red component of the ambient color between [0.0, 1.0]. 6666 * @param r Red component of the ambient color between [0.0, 1.0].
6573 * @param g Green component of the ambient color between [0.0, 1.0]. 6667 * @param g Green component of the ambient color between [0.0, 1.0].
6574 * @param b Blue component of the ambient color between [0.0, 1.0]. 6668 * @param b Blue component of the ambient color between [0.0, 1.0].
6575 * @param a Alpha component of the ambient color between [0.0, 1.0]. 6669 * @param a Alpha component of the ambient color between [0.0, 1.0].
6576 * 6670 *
6577 * Default ambient color is (0.0, 0.0, 0.0, 1.0). 6671 * Default ambient color is (0.0, 0.0, 0.0, 1.0).
6578 * 6672 *
6673 * @since 1.10
6674 *
6579 * @ingroup Evas_3D_Light 6675 * @ingroup Evas_3D_Light
6580 */ 6676 */
6581EAPI void evas_3d_light_ambient_set(Evas_3D_Light *light, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1); 6677EAPI void evas_3d_light_ambient_set(Evas_3D_Light *light, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1);
@@ -6583,13 +6679,14 @@ EAPI void evas_3d_light_ambient_set(Evas_3D_Light *light, Evas_Rea
6583/** 6679/**
6584 * Get the ambient color of the given light. 6680 * Get the ambient color of the given light.
6585 * 6681 *
6586 * @param light The given light. 6682 * @param light The given light.
6587 * @param r Pointer to receive the red component of the ambient color. 6683 * @param r Pointer to receive the red component of the ambient color.
6588 * @param g Pointer to receive the green component of the ambient color. 6684 * @param g Pointer to receive the green component of the ambient color.
6589 * @param b Pointer to receive the blue component of the ambient color. 6685 * @param b Pointer to receive the blue component of the ambient color.
6590 * @param a Pointer to receive the alpha component of the ambient color. 6686 * @param a Pointer to receive the alpha component of the ambient color.
6591 * 6687 *
6592 * @see evas_3d_light_ambient_set() 6688 * @see evas_3d_light_ambient_set()
6689 * @since 1.10
6593 * 6690 *
6594 * @ingroup Evas_3D_Light 6691 * @ingroup Evas_3D_Light
6595 */ 6692 */
@@ -6598,14 +6695,16 @@ EAPI void evas_3d_light_ambient_get(const Evas_3D_Light *light, Ev
6598/** 6695/**
6599 * Set the diffuse color of the given light. 6696 * Set the diffuse color of the given light.
6600 * 6697 *
6601 * @param light The given light. 6698 * @param light The given light.
6602 * @param r Red component of the diffuse color between [0.0, 1.0]. 6699 * @param r Red component of the diffuse color between [0.0, 1.0].
6603 * @param g Green component of the diffuse color between [0.0, 1.0]. 6700 * @param g Green component of the diffuse color between [0.0, 1.0].
6604 * @param b Blue component of the diffuse color between [0.0, 1.0]. 6701 * @param b Blue component of the diffuse color between [0.0, 1.0].
6605 * @param a Alpha component of the diffuse color between [0.0, 1.0]. 6702 * @param a Alpha component of the diffuse color between [0.0, 1.0].
6606 * 6703 *
6607 * Default diffuse color is (1.0, 1.0, 1.0, 1.0). 6704 * Default diffuse color is (1.0, 1.0, 1.0, 1.0).
6608 * 6705 *
6706 * @since 1.10
6707 *
6609 * @ingroup Evas_3D_Light 6708 * @ingroup Evas_3D_Light
6610 */ 6709 */
6611EAPI void evas_3d_light_diffuse_set(Evas_3D_Light *light, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1); 6710EAPI void evas_3d_light_diffuse_set(Evas_3D_Light *light, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1);
@@ -6613,13 +6712,14 @@ EAPI void evas_3d_light_diffuse_set(Evas_3D_Light *light, Evas_Rea
6613/** 6712/**
6614 * Get the diffuse color of the given light. 6713 * Get the diffuse color of the given light.
6615 * 6714 *
6616 * @param light The given light. 6715 * @param light The given light.
6617 * @param r Pointer to receive the red component of the diffuse color. 6716 * @param r Pointer to receive the red component of the diffuse color.
6618 * @param g Pointer to receive the green component of the diffuse color. 6717 * @param g Pointer to receive the green component of the diffuse color.
6619 * @param b Pointer to receive the blue component of the diffuse color. 6718 * @param b Pointer to receive the blue component of the diffuse color.
6620 * @param a Pointer to receive the alpha component of the diffuse color. 6719 * @param a Pointer to receive the alpha component of the diffuse color.
6621 * 6720 *
6622 * @see evas_3d_light_diffuse_set() 6721 * @see evas_3d_light_diffuse_set()
6722 * @since 1.10
6623 * 6723 *
6624 * @ingroup Evas_3D_Light 6724 * @ingroup Evas_3D_Light
6625 */ 6725 */
@@ -6628,13 +6728,14 @@ EAPI void evas_3d_light_diffuse_get(const Evas_3D_Light *light, Ev
6628/** 6728/**
6629 * Get the specular color of the given light. 6729 * Get the specular color of the given light.
6630 * 6730 *
6631 * @param light The given light. 6731 * @param light The given light.
6632 * @param r Pointer to receive the red component of the specular color. 6732 * @param r Pointer to receive the red component of the specular color.
6633 * @param g Pointer to receive the green component of the specular color. 6733 * @param g Pointer to receive the green component of the specular color.
6634 * @param b Pointer to receive the blue component of the specular color. 6734 * @param b Pointer to receive the blue component of the specular color.
6635 * @param a Pointer to receive the alpha component of the specular color. 6735 * @param a Pointer to receive the alpha component of the specular color.
6636 * 6736 *
6637 * Default specular color is (1.0, 1.0, 1.0, 1.0). 6737 * Default specular color is (1.0, 1.0, 1.0, 1.0).
6738 * @since 1.10
6638 * 6739 *
6639 * @ingroup Evas_3D_Light 6740 * @ingroup Evas_3D_Light
6640 */ 6741 */
@@ -6643,13 +6744,14 @@ EAPI void evas_3d_light_specular_set(Evas_3D_Light *light, Evas_Re
6643/** 6744/**
6644 * Get the specular color of the given light. 6745 * Get the specular color of the given light.
6645 * 6746 *
6646 * @param light The given light. 6747 * @param light The given light.
6647 * @param r Pointer to receive the red component of the specular color. 6748 * @param r Pointer to receive the red component of the specular color.
6648 * @param g Pointer to receive the green component of the specular color. 6749 * @param g Pointer to receive the green component of the specular color.
6649 * @param b Pointer to receive the blue component of the specular color. 6750 * @param b Pointer to receive the blue component of the specular color.
6650 * @param a Pointer to receive the alpha component of the specular color. 6751 * @param a Pointer to receive the alpha component of the specular color.
6651 * 6752 *
6652 * @see evas_3d_light_specular_set() 6753 * @see evas_3d_light_specular_set()
6754 * @since 1.10
6653 * 6755 *
6654 * @ingroup Evas_3D_Light 6756 * @ingroup Evas_3D_Light
6655 */ 6757 */
@@ -6658,8 +6760,8 @@ EAPI void evas_3d_light_specular_get(const Evas_3D_Light *light, E
6658/** 6760/**
6659 * Set the spot exponent of the given light. 6761 * Set the spot exponent of the given light.
6660 * 6762 *
6661 * @param light The given light. 6763 * @param light The given light.
6662 * @param exponent Spot exponent value. 6764 * @param exponent Spot exponent value.
6663 * 6765 *
6664 * Higher spot exponent means intensity at the center of the cone is relatively 6766 * Higher spot exponent means intensity at the center of the cone is relatively
6665 * stronger. Zero exponent means the light intensity is evenly distibuted. The 6767 * stronger. Zero exponent means the light intensity is evenly distibuted. The
@@ -6668,7 +6770,8 @@ EAPI void evas_3d_light_specular_get(const Evas_3D_Light *light, E
6668 * 6770 *
6669 * Default spot exponent is 0. 6771 * Default spot exponent is 0.
6670 * 6772 *
6671 * @see evas_3d_light_spot_cutoff_set() 6773 * @see evas_3d_light_spot_cutoff_set()i
6774 * @since 1.10
6672 * 6775 *
6673 * @ingroup Evas_3D_Light 6776 * @ingroup Evas_3D_Light
6674 */ 6777 */
@@ -6677,10 +6780,11 @@ EAPI void evas_3d_light_spot_exponent_set(Evas_3D_Light *light, Ev
6677/** 6780/**
6678 * Get the spot exponent of the given light. 6781 * Get the spot exponent of the given light.
6679 * 6782 *
6680 * @param light The given light. 6783 * @param light The given light.
6681 * @return The spot exponent value. 6784 * @return The spot exponent value.
6682 * 6785 *
6683 * @see evas_3d_light_spot_exponent_set() 6786 * @see evas_3d_light_spot_exponent_set()
6787 * @since 1.10
6684 * 6788 *
6685 * @ingroup Evas_3D_Light 6789 * @ingroup Evas_3D_Light
6686 */ 6790 */
@@ -6689,14 +6793,16 @@ EAPI Evas_Real evas_3d_light_spot_exponent_get(const Evas_3D_Light *lig
6689/** 6793/**
6690 * Set the spot cutoff angle of the given light. 6794 * Set the spot cutoff angle of the given light.
6691 * 6795 *
6692 * @param light The given light. 6796 * @param light The given light.
6693 * @param cutoff Cutoff angle in degree. 6797 * @param cutoff Cutoff angle in degree.
6694 * 6798 *
6695 * Only angle less than 180 degree will make it spot light, so that other spot 6799 * Only angle less than 180 degree will make it spot light, so that other spot
6696 * light attribute will take effect. 6800 * light attribute will take effect.
6697 * 6801 *
6698 * Default spot cutoff angle is 180. 6802 * Default spot cutoff angle is 180.
6699 * 6803 *
6804 * @since 1.10
6805 *
6700 * @ingroup Evas_3D_Light 6806 * @ingroup Evas_3D_Light
6701 */ 6807 */
6702EAPI void evas_3d_light_spot_cutoff_set(Evas_3D_Light *light, Evas_Real cutoff) EINA_ARG_NONNULL(1); 6808EAPI void evas_3d_light_spot_cutoff_set(Evas_3D_Light *light, Evas_Real cutoff) EINA_ARG_NONNULL(1);
@@ -6704,10 +6810,11 @@ EAPI void evas_3d_light_spot_cutoff_set(Evas_3D_Light *light, Evas
6704/** 6810/**
6705 * Get the spot cutoff angle of the given light. 6811 * Get the spot cutoff angle of the given light.
6706 * 6812 *
6707 * @param light The given light. 6813 * @param light The given light.
6708 * @return Cutoff angle in degree. 6814 * @return Cutoff angle in degree.
6709 * 6815 *
6710 * @see evas_3d_light_spot_cutoff_set() 6816 * @see evas_3d_light_spot_cutoff_set()
6817 * @since 1.10
6711 * 6818 *
6712 * @ingroup Evas_3D_Light 6819 * @ingroup Evas_3D_Light
6713 */ 6820 */
@@ -6716,10 +6823,10 @@ EAPI Evas_Real evas_3d_light_spot_cutoff_get(const Evas_3D_Light *light
6716/** 6823/**
6717 * Set the attenuation of the given light. 6824 * Set the attenuation of the given light.
6718 * 6825 *
6719 * @param light The given light. 6826 * @param light The given light.
6720 * @param constant Constant attenuation term. 6827 * @param constant Constant attenuation term.
6721 * @param linear Linear attenuation term. 6828 * @param linear Linear attenuation term.
6722 * @param quadratic Quadratic attenuation term. 6829 * @param quadratic Quadratic attenuation term.
6723 * 6830 *
6724 * Light attenuation has no effect with directional light. And the attenuation 6831 * Light attenuation has no effect with directional light. And the attenuation
6725 * should be enabled first to take effect. The attenuation factor is calculated 6832 * should be enabled first to take effect. The attenuation factor is calculated
@@ -6730,6 +6837,7 @@ EAPI Evas_Real evas_3d_light_spot_cutoff_get(const Evas_3D_Light *light
6730 * Default attenuation is constant = 1.0, linear = 0.0, quadratic = 0.0. 6837 * Default attenuation is constant = 1.0, linear = 0.0, quadratic = 0.0.
6731 * 6838 *
6732 * @see evas_3d_light_attenuation_enable_set() 6839 * @see evas_3d_light_attenuation_enable_set()
6840 * @since 1.10
6733 * 6841 *
6734 * @ingroup Evas_3D_Light 6842 * @ingroup Evas_3D_Light
6735 */ 6843 */
@@ -6738,12 +6846,13 @@ EAPI void evas_3d_light_attenuation_set(Evas_3D_Light *light, Evas
6738/** 6846/**
6739 * Get the attenuation of the given light. 6847 * Get the attenuation of the given light.
6740 * 6848 *
6741 * @param light The given light. 6849 * @param light The given light.
6742 * @param constant Pointer to receive constant attenuation term. 6850 * @param constant Pointer to receive constant attenuation term.
6743 * @param linear Pointer to receive linear attenuation term. 6851 * @param linear Pointer to receive linear attenuation term.
6744 * @param quadratic Pointer to receive quadratic attenuation term. 6852 * @param quadratic Pointer to receive quadratic attenuation term.
6745 * 6853 *
6746 * @see evas_3d_light_attenuation_set() 6854 * @see evas_3d_light_attenuation_set()
6855 * @since 1.10
6747 * 6856 *
6748 * @ingroup Evas_3D_Light 6857 * @ingroup Evas_3D_Light
6749 */ 6858 */
@@ -6752,12 +6861,14 @@ EAPI void evas_3d_light_attenuation_get(const Evas_3D_Light *light
6752/** 6861/**
6753 * Set the attenuation enable flag of the given light. 6862 * Set the attenuation enable flag of the given light.
6754 * 6863 *
6755 * @param light The given light. 6864 * @param light The given light.
6756 * @param enable Whether to enable attenuation (@c EINA_TRUE), or not (@c EINA_FALSE). 6865 * @param enable Whether to enable attenuation (@c EINA_TRUE), or not
6866 * (@c EINA_FALSE).
6757 * 6867 *
6758 * By default, light attenuation is not enabled. 6868 * By default, light attenuation is not enabled.
6759 * 6869 *
6760 * @see evas_3d_light_attenuation_set() 6870 * @see evas_3d_light_attenuation_set()
6871 * @since 1.10
6761 * 6872 *
6762 * @ingroup Evas_3D_Light 6873 * @ingroup Evas_3D_Light
6763 */ 6874 */
@@ -6766,10 +6877,11 @@ EAPI void evas_3d_light_attenuation_enable_set(Evas_3D_Light *ligh
6766/** 6877/**
6767 * Get the attenuation enable flag of the given light. 6878 * Get the attenuation enable flag of the given light.
6768 * 6879 *
6769 * @param light The given light. 6880 * @param light The given light.
6770 * @return @c EINA_TRUE if enabled, or @c EINA_FALSE if not. 6881 * @return @c EINA_TRUE if enabled, or @c EINA_FALSE if not.
6771 * 6882 *
6772 * @see evas_3d_light_attenuation_enable_set() 6883 * @see evas_3d_light_attenuation_enable_set()
6884 * @since 1.10
6773 * 6885 *
6774 * @ingroup Evas_3D_Light 6886 * @ingroup Evas_3D_Light
6775 */ 6887 */
@@ -6778,8 +6890,10 @@ EAPI Eina_Bool evas_3d_light_attenuation_enable_get(const Evas_3D_Light
6778/** 6890/**
6779 * Create a new mesh on the given Evas @p canvas. 6891 * Create a new mesh on the given Evas @p canvas.
6780 * 6892 *
6781 * @param e The given canvas. 6893 * @param e The given canvas.
6782 * @return The created mesh handle. 6894 * @return The created mesh handle.
6895 *
6896 * @since 1.10
6783 * 6897 *
6784 * @ingroup Evas_3D_Mesh 6898 * @ingroup Evas_3D_Mesh
6785 */ 6899 */
@@ -6788,34 +6902,25 @@ EAPI Evas_3D_Mesh *evas_3d_mesh_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_A
6788/** 6902/**
6789 * Delete a mesh from its belonging Evas canvas. 6903 * Delete a mesh from its belonging Evas canvas.
6790 * 6904 *
6791 * @param mesh The given mesh. 6905 * @param mesh The given mesh.
6792 * 6906 *
6793 * @see evas_3d_mesh_add() 6907 * @see evas_3d_mesh_add()
6908 * @since 1.10
6794 * 6909 *
6795 * @ingroup Evas_3D_Mesh 6910 * @ingroup Evas_3D_Mesh
6796 */ 6911 */
6797EAPI void evas_3d_mesh_del(Evas_3D_Mesh *mesh) EINA_ARG_NONNULL(1); 6912EAPI void evas_3d_mesh_del(Evas_3D_Mesh *mesh) EINA_ARG_NONNULL(1);
6798 6913
6799/** 6914/**
6800 * Get the Evas canvas where the given node belongs to.
6801 *
6802 * @param mesh The given mesh.
6803 * @return The Evas canvas.
6804 *
6805 * @see evas_3d_mesh_add()
6806 *
6807 * @ingroup Evas_3D_Mesh
6808 */
6809//EAPI Evas *evas_3d_mesh_evas_get(const Evas_3D_Mesh *mesh) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6810
6811/**
6812 * Set the shade mode of the given mesh. 6915 * Set the shade mode of the given mesh.
6813 * 6916 *
6814 * @param mesh The given mesh. 6917 * @param mesh The given mesh.
6815 * @param mode The shade mode. 6918 * @param mode The shade mode.
6816 * 6919 *
6817 * Default shade mode is EVAS_3D_SHADE_MODE_VERTEX_COLOR. 6920 * Default shade mode is EVAS_3D_SHADE_MODE_VERTEX_COLOR.
6818 * 6921 *
6922 * @since 1.10
6923 *
6819 * @ingroup Evas_3D_Mesh 6924 * @ingroup Evas_3D_Mesh
6820 */ 6925 */
6821EAPI void evas_3d_mesh_shade_mode_set(Evas_3D_Mesh *mesh, Evas_3D_Shade_Mode mode) EINA_ARG_NONNULL(1); 6926EAPI void evas_3d_mesh_shade_mode_set(Evas_3D_Mesh *mesh, Evas_3D_Shade_Mode mode) EINA_ARG_NONNULL(1);
@@ -6823,10 +6928,11 @@ EAPI void evas_3d_mesh_shade_mode_set(Evas_3D_Mesh *mesh, Evas_3D_
6823/** 6928/**
6824 * Get the shade mode of the given mesh. 6929 * Get the shade mode of the given mesh.
6825 * 6930 *
6826 * @param mesh The given mesh. 6931 * @param mesh The given mesh.
6827 * @return The shade mode. 6932 * @return The shade mode.
6828 * 6933 *
6829 * @see eavs_3d_mesh_shade_mode_set() 6934 * @see eavs_3d_mesh_shade_mode_set()
6935 * @since 1.10
6830 * 6936 *
6831 * @ingroup Evas_3D_Mesh 6937 * @ingroup Evas_3D_Mesh
6832 */ 6938 */
@@ -6835,23 +6941,24 @@ EAPI Evas_3D_Shade_Mode evas_3d_mesh_shade_mode_get(const Evas_3D_Mesh *mesh) EI
6835/** 6941/**
6836 * Load mesh data from file. 6942 * Load mesh data from file.
6837 * 6943 *
6838 * @param mesh The given mesh. 6944 * @param mesh The given mesh.
6839 * @param type The type of the mesh file. 6945 * @param type The type of the mesh file.
6840 * @param file Path to the mesh file. 6946 * @param file Path to the mesh file.
6841 * @param key Key in the mesh file. 6947 * @param key Key in the mesh file.
6842 * 6948 *
6843 * Loading a mesh from existing file is supported. Currently, only MD2 file 6949 * Loading a mesh from existing file is supported. Currently, only MD2 file
6844 * format is supported. 6950 * format is supported.
6845 * 6951 *
6846 * @ingroup Evas_3D_Mesh 6952 * @ingroup Evas_3D_Mesh
6953 * @since 1.10
6847 */ 6954 */
6848EAPI void evas_3d_mesh_file_set(Evas_3D_Mesh *mesh, Evas_3D_Mesh_File_Type type, const char *file, const char *key) EINA_ARG_NONNULL(1); 6955EAPI void evas_3d_mesh_file_set(Evas_3D_Mesh *mesh, Evas_3D_Mesh_File_Type type, const char *file, const char *key) EINA_ARG_NONNULL(1);
6849 6956
6850/** 6957/**
6851 * Set the vertex count of the given mesh. 6958 * Set the vertex count of the given mesh.
6852 * 6959 *
6853 * @param mesh The given mesh. 6960 * @param mesh The given mesh.
6854 * @param count Vertex count. 6961 * @param count Vertex count.
6855 * 6962 *
6856 * Each key frame should have same vertex count to be properly interpolated. 6963 * Each key frame should have same vertex count to be properly interpolated.
6857 * Key frames have their own vertex data and the data should have more vertices 6964 * Key frames have their own vertex data and the data should have more vertices
@@ -6859,6 +6966,8 @@ EAPI void evas_3d_mesh_file_set(Evas_3D_Mesh *mesh, Evas_3D_Mesh_F
6859 * 6966 *
6860 * Default vertex count is 0. 6967 * Default vertex count is 0.
6861 * 6968 *
6969 * @since 1.10
6970 *
6862 * @ingroup Evas_3D_Mesh 6971 * @ingroup Evas_3D_Mesh
6863 */ 6972 */
6864EAPI void evas_3d_mesh_vertex_count_set(Evas_3D_Mesh *mesh, unsigned int count) EINA_ARG_NONNULL(1); 6973EAPI void evas_3d_mesh_vertex_count_set(Evas_3D_Mesh *mesh, unsigned int count) EINA_ARG_NONNULL(1);
@@ -6866,11 +6975,13 @@ EAPI void evas_3d_mesh_vertex_count_set(Evas_3D_Mesh *mesh, unsign
6866/** 6975/**
6867 * Get the vertex count of the given mesh. 6976 * Get the vertex count of the given mesh.
6868 * 6977 *
6869 * @param mesh The given mesh. 6978 * @param mesh The given mesh.
6870 * @return Vertex count. 6979 * @return Vertex count.
6871 * 6980 *
6872 * @see evas_3d_mesh_vertex_count_set() 6981 * @see evas_3d_mesh_vertex_count_set()
6873 * 6982 *
6983 * @since 1.10
6984 *
6874 * @ingroup Evas_3D_Mesh 6985 * @ingroup Evas_3D_Mesh
6875 */ 6986 */
6876EAPI int evas_3d_mesh_vertex_count_get(const Evas_3D_Mesh *mesh) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 6987EAPI int evas_3d_mesh_vertex_count_get(const Evas_3D_Mesh *mesh) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
@@ -6878,10 +6989,12 @@ EAPI int evas_3d_mesh_vertex_count_get(const Evas_3D_Mesh *mesh)
6878/** 6989/**
6879 * Add a key frame to the given mesh. 6990 * Add a key frame to the given mesh.
6880 * 6991 *
6881 * @param mesh The given mesh. 6992 * @param mesh The given mesh.
6882 * @param frame The number of the key frame to be added. 6993 * @param frame The number of the key frame to be added.
6994 *
6995 * If specified frame is already exist, nothing will be happened.
6883 * 6996 *
6884 * If specified frame is already exist, error message will be generated. 6997 * @since 1.10
6885 * 6998 *
6886 * @ingroup Evas_3D_Mesh 6999 * @ingroup Evas_3D_Mesh
6887 */ 7000 */
@@ -6890,10 +7003,11 @@ EAPI void evas_3d_mesh_frame_add(Evas_3D_Mesh *mesh, int frame) EI
6890/** 7003/**
6891 * Delete a key frame from the given mesh. 7004 * Delete a key frame from the given mesh.
6892 * 7005 *
6893 * @param mesh The given mesh. 7006 * @param mesh The given mesh.
6894 * @param frame The number of the key frame to be deleted. 7007 * @param frame The number of the key frame to be deleted.
6895 * 7008 *
6896 * @see evas_3d_mesh_frame_add() 7009 * @see evas_3d_mesh_frame_add()
7010 * @since 1.10
6897 * 7011 *
6898 * @ingroup Evas_3D_Mesh 7012 * @ingroup Evas_3D_Mesh
6899 */ 7013 */
@@ -6902,13 +7016,16 @@ EAPI void evas_3d_mesh_frame_del(Evas_3D_Mesh *mesh, int frame) EI
6902/** 7016/**
6903 * Set the material of the key frame of the given mesh. 7017 * Set the material of the key frame of the given mesh.
6904 * 7018 *
6905 * @param mesh The given mesh. 7019 * @param mesh The given mesh.
6906 * @param frame The number of the key frame. 7020 * @param frame The number of the key frame.
6907 * @param material The material to be set to the key frame. 7021 * @param material The material to be set to the key frame.
6908 * 7022 *
6909 * Setting different materials for each key frame is useful for doing animations 7023 * Setting different materials for each key frame is useful for doing animations
6910 * like GIF images or color changing animationas. 7024 * like GIF images or color changing animationas.
6911 * 7025 *
7026 * @see evas_3d_mesh_frame_add()
7027 * @since 1.10
7028 *
6912 * @ingroup Evas_3D_Mesh 7029 * @ingroup Evas_3D_Mesh
6913 */ 7030 */
6914EAPI void evas_3d_mesh_frame_material_set(Evas_3D_Mesh *mesh, int frame, Evas_3D_Material *material) EINA_ARG_NONNULL(1); 7031EAPI void evas_3d_mesh_frame_material_set(Evas_3D_Mesh *mesh, int frame, Evas_3D_Material *material) EINA_ARG_NONNULL(1);
@@ -6916,11 +7033,12 @@ EAPI void evas_3d_mesh_frame_material_set(Evas_3D_Mesh *mesh, int
6916/** 7033/**
6917 * Get the material of the key frame of the given mesh. 7034 * Get the material of the key frame of the given mesh.
6918 * 7035 *
6919 * @param mesh The given mesh. 7036 * @param mesh The given mesh.
6920 * @param frame The number of the key frame. 7037 * @param frame The number of the key frame.
6921 * @return The material of the key frame. 7038 * @return The material of the key frame.
6922 * 7039 *
6923 * @see evas_3d_mesh_frame_material_set() 7040 * @see evas_3d_mesh_frame_material_set()
7041 * @since 1.10
6924 * 7042 *
6925 * @ingroup Evas_3D_Mesh 7043 * @ingroup Evas_3D_Mesh
6926 */ 7044 */
@@ -6929,11 +7047,11 @@ EAPI Evas_3D_Material *evas_3d_mesh_frame_material_get(const Evas_3D_Mesh *mesh
6929/** 7047/**
6930 * Set the vertex data of the key frame of the given mesh. 7048 * Set the vertex data of the key frame of the given mesh.
6931 * 7049 *
6932 * @param mesh The given mesh. 7050 * @param mesh The given mesh.
6933 * @param frame The number of the key frame. 7051 * @param frame The number of the key frame.
6934 * @param attrib Vertex attribute ID. 7052 * @param attrib Vertex attribute ID.
6935 * @param stride Stride to go to the next vertex (in bytes). 7053 * @param stride Stride to go to the next vertex (in bytes).
6936 * @param data Pointer to the vertex data buffer. 7054 * @param data Pointer to the vertex data buffer.
6937 * 7055 *
6938 * This function make evas read from the given buffer whenever it requires. 7056 * This function make evas read from the given buffer whenever it requires.
6939 * If you want to release the buffer after calling this functions, use 7057 * If you want to release the buffer after calling this functions, use
@@ -6942,28 +7060,32 @@ EAPI Evas_3D_Material *evas_3d_mesh_frame_material_get(const Evas_3D_Mesh *mesh
6942 * After setting the vertex data, further modifications should be protected 7060 * After setting the vertex data, further modifications should be protected
6943 * by map/unmap pair. 7061 * by map/unmap pair.
6944 * 7062 *
7063 * @see evas_3d_mesh_frame_add()
6945 * @see evas_3d_mesh_frame_vertex_data_copy_set() 7064 * @see evas_3d_mesh_frame_vertex_data_copy_set()
6946 * @see evas_3d_mesh_frame_vertex_data_map() 7065 * @see evas_3d_mesh_frame_vertex_data_map()
6947 * @see evas_3d_mesh_frame_vertex_data_unmap() 7066 * @see evas_3d_mesh_frame_vertex_data_unmap()
7067 * @since 1.10
6948 * 7068 *
6949 * @ingroup Evas_3D_Mesh 7069 * @ingroup Evas_3D_Mesh
6950 */ 7070 */
6951EAPI void evas_3d_mesh_frame_vertex_data_set(Evas_3D_Mesh *mesh, int frame, Evas_3D_Vertex_Attrib attrib, int stride, const void *data) EINA_ARG_NONNULL(1); 7071EAPI void evas_3d_mesh_frame_vertex_data_set(Evas_3D_Mesh *mesh, int frame, Evas_3D_Vertex_Attrib attrib, int stride, const void *data) EINA_ARG_NONNULL(1);
6952 7072
6953/** 7073/**
6954 * Set the vertex data of the key frame of the given mesh by copying from a buffer. 7074 * Set the vertex data of the key frame of the given mesh by copying from a
7075 * buffer.
6955 * 7076 *
6956 * @param mesh The given mesh. 7077 * @param mesh The given mesh.
6957 * @param frame The number of the key frame. 7078 * @param frame The number of the key frame.
6958 * @param attrib Vertex attribute ID. 7079 * @param attrib Vertex attribute ID.
6959 * @param stride Stride to go to the next vertex (in bytes). 7080 * @param stride Stride to go to the next vertex (in bytes).
6960 * @param data Pointer to the vertex data buffer. 7081 * @param data Pointer to the vertex data buffer.
6961 * 7082 *
6962 * This function allocates internal vertex buffer and copy from the given 7083 * This function allocates internal vertex buffer and copy from the given
6963 * buffer. So you can release the buffer. If you want to modify the vertex data 7084 * buffer. So you can release the buffer. If you want to modify the vertex data
6964 * use evas_3d_mesh_frame_vertex_data_map(). After finishing the modifications, 7085 * use evas_3d_mesh_frame_vertex_data_map(). After finishing the modifications,
6965 * you should call evas_3d_mesh_frame_vertex_data_unmap(). 7086 * you should call evas_3d_mesh_frame_vertex_data_unmap().
6966 * 7087 *
7088 * @see evas_3d_mesh_frame_add()
6967 * @see evas_3d_mesh_frame_vertex_data_set() 7089 * @see evas_3d_mesh_frame_vertex_data_set()
6968 * @see evas_3d_mesh_frame_vertex_data_map() 7090 * @see evas_3d_mesh_frame_vertex_data_map()
6969 * @see evas_3d_mesh_frame_vertex_data_unmap() 7091 * @see evas_3d_mesh_frame_vertex_data_unmap()
@@ -6975,10 +7097,10 @@ EAPI void evas_3d_mesh_frame_vertex_data_copy_set(Evas_3D_Mesh *me
6975/** 7097/**
6976 * Map the vertex buffer of the key frame of the given mesh. 7098 * Map the vertex buffer of the key frame of the given mesh.
6977 * 7099 *
6978 * @param mesh The given mesh. 7100 * @param mesh The given mesh.
6979 * @param frame The number of the key frame. 7101 * @param frame The number of the key frame.
6980 * @param attrib Vertex attribute ID. 7102 * @param attrib Vertex attribute ID.
6981 * @return Starting address of the mapped vertex buffer. 7103 * @return Starting address of the mapped vertex buffer.
6982 * 7104 *
6983 * After manipulating the mapped buffer, evas_3d_mesh_frame_vertex_data_unmap() 7105 * After manipulating the mapped buffer, evas_3d_mesh_frame_vertex_data_unmap()
6984 * should be called to properly download the data to the engine. If the data 7106 * should be called to properly download the data to the engine. If the data
@@ -6987,6 +7109,7 @@ EAPI void evas_3d_mesh_frame_vertex_data_copy_set(Evas_3D_Mesh *me
6987 * time calling this function. 7109 * time calling this function.
6988 * 7110 *
6989 * @see evas_3d_mesh_frame_vertex_data_unmap() 7111 * @see evas_3d_mesh_frame_vertex_data_unmap()
7112 * @since 1.10
6990 * 7113 *
6991 * @ingroup Evas_3D_Mesh 7114 * @ingroup Evas_3D_Mesh
6992 */ 7115 */
@@ -6995,11 +7118,12 @@ EAPI void *evas_3d_mesh_frame_vertex_data_map(Evas_3D_Mesh *mesh, i
6995/** 7118/**
6996 * Unmap the vertex buffer of the key frame of the given mesh. 7119 * Unmap the vertex buffer of the key frame of the given mesh.
6997 * 7120 *
6998 * @param mesh The given mesh. 7121 * @param mesh The given mesh.
6999 * @param frame The number of the key frame. 7122 * @param frame The number of the key frame.
7000 * @param attrib Vertex attribute ID. 7123 * @param attrib Vertex attribute ID.
7001 * 7124 *
7002 * @see evas_3d_mesh_frame_vertex_data_map() 7125 * @see evas_3d_mesh_frame_vertex_data_map()
7126 * @since 1.10
7003 * 7127 *
7004 * @ingroup Evas_3D_Mesh 7128 * @ingroup Evas_3D_Mesh
7005 */ 7129 */
@@ -7008,16 +7132,17 @@ EAPI void evas_3d_mesh_frame_vertex_data_unmap(Evas_3D_Mesh *mesh,
7008/** 7132/**
7009 * Get the vertex buffer stride of the key frame of the given mesh. 7133 * Get the vertex buffer stride of the key frame of the given mesh.
7010 * 7134 *
7011 * @param mesh The given mesh. 7135 * @param mesh The given mesh.
7012 * @param frame The number of the key frame. 7136 * @param frame The number of the key frame.
7013 * @param attrib Vertex attribute ID. 7137 * @param attrib Vertex attribute ID.
7014 * @return Stride to go to the next vertex (in bytes). 7138 * @return Stride to go to the next vertex (in bytes).
7015 * 7139 *
7016 * This function returns valid stride only when the vertex buffer is mapped. 7140 * This function returns valid stride only when the vertex buffer is mapped.
7017 * If the data was set with evas_3d_mesh_frame_vertex_data_set(), the original 7141 * If the data was set with evas_3d_mesh_frame_vertex_data_set(), the original
7018 * stride will be returned unchanged. 7142 * stride will be returned unchanged.
7019 * 7143 *
7020 * @see evas_3d_mesh_frame_vertex_data_map() 7144 * @see evas_3d_mesh_frame_vertex_data_map()
7145 * @since 1.10
7021 * 7146 *
7022 * @ingroup Evas_3D_Mesh 7147 * @ingroup Evas_3D_Mesh
7023 */ 7148 */
@@ -7026,10 +7151,10 @@ EAPI int evas_3d_mesh_frame_vertex_stride_get(const Evas_3D_Mesh
7026/** 7151/**
7027 * Set the vertex index data of the given mesh. 7152 * Set the vertex index data of the given mesh.
7028 * 7153 *
7029 * @param mesh The given mesh. 7154 * @param mesh The given mesh.
7030 * @param format Vertex index data format. 7155 * @param format Vertex index data format.
7031 * @param count Vertex index count. 7156 * @param count Vertex index count.
7032 * @param indices Pointer to the index data. 7157 * @param indices Pointer to the index data.
7033 * 7158 *
7034 * When the index data is set, Evas 3D assembles vertices using the index data. 7159 * When the index data is set, Evas 3D assembles vertices using the index data.
7035 * If you want to free the data buffer, use evas_3d_mesh_index_data_copy_set(). 7160 * If you want to free the data buffer, use evas_3d_mesh_index_data_copy_set().
@@ -7038,6 +7163,7 @@ EAPI int evas_3d_mesh_frame_vertex_stride_get(const Evas_3D_Mesh
7038 * @see evas_3d_mesh_index_data_copy_set() 7163 * @see evas_3d_mesh_index_data_copy_set()
7039 * @see evas_3d_mesh_index_data_map() 7164 * @see evas_3d_mesh_index_data_map()
7040 * @see evas_3d_mesh_index_data_unmap() 7165 * @see evas_3d_mesh_index_data_unmap()
7166 * @since 1.10
7041 * 7167 *
7042 * @ingroup Evas_3D_Mesh 7168 * @ingroup Evas_3D_Mesh
7043 */ 7169 */
@@ -7046,15 +7172,16 @@ EAPI void evas_3d_mesh_index_data_set(Evas_3D_Mesh *mesh, Evas_3D_
7046/** 7172/**
7047 * Set the vertex index data of the given mesh by copying from a buffer. 7173 * Set the vertex index data of the given mesh by copying from a buffer.
7048 * 7174 *
7049 * @param mesh The given mesh. 7175 * @param mesh The given mesh.
7050 * @param format Vertex index data format. 7176 * @param format Vertex index data format.
7051 * @param count Vertex index count. 7177 * @param count Vertex index count.
7052 * @param indices Pointer to the vertex data. 7178 * @param indices Pointer to the vertex data.
7053 * 7179 *
7054 * This function allocates internal index buffer any copy data from the given 7180 * This function allocates internal index buffer any copy data from the given
7055 * buffer. Futher modifications can be made within map/unmap pair. 7181 * buffer. Futher modifications can be made within map/unmap pair.
7056 * 7182 *
7057 * @see evas_3d_mesh_index_data_set() 7183 * @see evas_3d_mesh_index_data_set()
7184 * @since 1.10
7058 * 7185 *
7059 * @ingroup Evas_3D_Mesh 7186 * @ingroup Evas_3D_Mesh
7060 */ 7187 */
@@ -7063,8 +7190,8 @@ EAPI void evas_3d_mesh_index_data_copy_set(Evas_3D_Mesh *mesh, Eva
7063/** 7190/**
7064 * Get the format of the index data of the given mesh. 7191 * Get the format of the index data of the given mesh.
7065 * 7192 *
7066 * @param mesh The given mesh. 7193 * @param mesh The given mesh.
7067 * @return Format of the index data. 7194 * @return Format of the index data.
7068 * 7195 *
7069 * Returns valid format only when the index buffer is mapped. First map the 7196 * Returns valid format only when the index buffer is mapped. First map the
7070 * index buffer and then query the properties of the mapped buffer. If the index 7197 * index buffer and then query the properties of the mapped buffer. If the index
@@ -7073,6 +7200,7 @@ EAPI void evas_3d_mesh_index_data_copy_set(Evas_3D_Mesh *mesh, Eva
7073 * evas_3d_mesh_index_data_map() function. 7200 * evas_3d_mesh_index_data_map() function.
7074 * 7201 *
7075 * @see evas_3d_mesh_index_data_map() 7202 * @see evas_3d_mesh_index_data_map()
7203 * @since 1.10
7076 * 7204 *
7077 * @ingroup Evas_3D_Mesh 7205 * @ingroup Evas_3D_Mesh
7078 */ 7206 */
@@ -7081,13 +7209,14 @@ EAPI Evas_3D_Index_Format evas_3d_mesh_index_format_get(const Evas_3D_Mesh *mesh
7081/** 7209/**
7082 * Get the count of the index data of the given mesh. 7210 * Get the count of the index data of the given mesh.
7083 * 7211 *
7084 * @param mesh The given mesh. 7212 * @param mesh The given mesh.
7085 * @return Index data count. 7213 * @return Index data count.
7086 * 7214 *
7087 * This function returns the index count of the last called data_set function. 7215 * This function returns the index count of the last called data_set function.
7088 * 7216 *
7089 * @see evas_3d_mesh_index_data_set() 7217 * @see evas_3d_mesh_index_data_set()
7090 * @see evas_3d_mesh_index_data_copy_set() 7218 * @see evas_3d_mesh_index_data_copy_set()
7219 * @since 1.10
7091 * 7220 *
7092 * @ingroup Evas_3D_Mesh 7221 * @ingroup Evas_3D_Mesh
7093 */ 7222 */
@@ -7096,8 +7225,8 @@ EAPI int evas_3d_mesh_index_count_get(const Evas_3D_Mesh *mesh) E
7096/** 7225/**
7097 * Map the index buffer of the given mesh. 7226 * Map the index buffer of the given mesh.
7098 * 7227 *
7099 * @param mesh The given mesh. 7228 * @param mesh The given mesh.
7100 * @return Pointer to the mapped buffer. 7229 * @return Pointer to the mapped buffer.
7101 * 7230 *
7102 * evas_3d_mesh_index_data_unmap() should be called after modifications. If the 7231 * evas_3d_mesh_index_data_unmap() should be called after modifications. If the
7103 * data was set using evas_3d_mesh_index_data_set(), the original pointer will 7232 * data was set using evas_3d_mesh_index_data_set(), the original pointer will
@@ -7105,6 +7234,7 @@ EAPI int evas_3d_mesh_index_count_get(const Evas_3D_Mesh *mesh) E
7105 * this function. 7234 * this function.
7106 * 7235 *
7107 * @see evas_3d_mesh_index_data_unmap() 7236 * @see evas_3d_mesh_index_data_unmap()
7237 * @since 1.10
7108 * 7238 *
7109 * @ingroup Evas_3D_Mesh 7239 * @ingroup Evas_3D_Mesh
7110 */ 7240 */
@@ -7113,9 +7243,10 @@ EAPI void *evas_3d_mesh_index_data_map(Evas_3D_Mesh *mesh) EINA_WAR
7113/** 7243/**
7114 * Unmap the index buffer of the given mesh. 7244 * Unmap the index buffer of the given mesh.
7115 * 7245 *
7116 * @param mesh The given mesh. 7246 * @param mesh The given mesh.
7117 * 7247 *
7118 * @see evas_3d_mesh_index_data_map() 7248 * @see evas_3d_mesh_index_data_map()
7249 * @since 1.10
7119 * 7250 *
7120 * @ingroup Evas_3D_Mesh 7251 * @ingroup Evas_3D_Mesh
7121 */ 7252 */
@@ -7124,14 +7255,16 @@ EAPI void evas_3d_mesh_index_data_unmap(Evas_3D_Mesh *mesh) EINA_A
7124/** 7255/**
7125 * Set the vertex assembly of the given mesh. 7256 * Set the vertex assembly of the given mesh.
7126 * 7257 *
7127 * @param mesh The given mesh. 7258 * @param mesh The given mesh.
7128 * @param assembly Vertex assembly. 7259 * @param assembly Vertex assembly.
7129 * 7260 *
7130 * Vertex assembly defines how the engine organizes vertices into geometric 7261 * Vertex assembly defines how the engine organizes vertices into geometric
7131 * primitives. 7262 * primitives.
7132 * 7263 *
7133 * Default vertex assembly is EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES. 7264 * Default vertex assembly is EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES.
7134 * 7265 *
7266 * @since 1.10
7267 *
7135 * @ingroup Evas_3D_Mesh 7268 * @ingroup Evas_3D_Mesh
7136 */ 7269 */
7137EAPI void evas_3d_mesh_vertex_assembly_set(Evas_3D_Mesh *mesh, Evas_3D_Vertex_Assembly assembly); 7270EAPI void evas_3d_mesh_vertex_assembly_set(Evas_3D_Mesh *mesh, Evas_3D_Vertex_Assembly assembly);
@@ -7139,10 +7272,11 @@ EAPI void evas_3d_mesh_vertex_assembly_set(Evas_3D_Mesh *mesh, Eva
7139/** 7272/**
7140 * Get the vertex assembly of the given mesh. 7273 * Get the vertex assembly of the given mesh.
7141 * 7274 *
7142 * @param mesh The given mesh. 7275 * @param mesh The given mesh.
7143 * @return The vertex assembly. 7276 * @return The vertex assembly.
7144 * 7277 *
7145 * @see evas_3d_mesh_vertex_assembly_set() 7278 * @see evas_3d_mesh_vertex_assembly_set()
7279 * @since 1.10
7146 * 7280 *
7147 * @ingroup Evas_3D_Mesh 7281 * @ingroup Evas_3D_Mesh
7148 */ 7282 */
@@ -7151,8 +7285,8 @@ EAPI Evas_3D_Vertex_Assembly evas_3d_mesh_vertex_assembly_get(const Evas_3D_Mesh
7151/** 7285/**
7152 * Create a new texture on the given Evas @p canvas. 7286 * Create a new texture on the given Evas @p canvas.
7153 * 7287 *
7154 * @param e The given canvas. 7288 * @param e The given canvas.
7155 * @return The created texture handle. 7289 * @return The created texture handle.
7156 * 7290 *
7157 * @ingroup Evas_3D_Texture 7291 * @ingroup Evas_3D_Texture
7158 */ 7292 */
@@ -7170,28 +7304,17 @@ EAPI Evas_3D_Texture *evas_3d_texture_add(Evas *e) EINA_WARN_UNUSED_RESULT EIN
7170EAPI void evas_3d_texture_del(Evas_3D_Texture *texture) EINA_ARG_NONNULL(1); 7304EAPI void evas_3d_texture_del(Evas_3D_Texture *texture) EINA_ARG_NONNULL(1);
7171 7305
7172/** 7306/**
7173 * Get the Evas canvas where the given texture belongs to.
7174 *
7175 * @param texture The given texture.
7176 * @return The Evas canvas.
7177 *
7178 * @see evas_3d_texture_add()
7179 *
7180 * @ingroup Evas_3D_Texture
7181 */
7182//EAPI Evas *evas_3d_texture_evas_get(const Evas_3D_Texture *texture) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7183
7184/**
7185 * Set the data of the given texture. 7307 * Set the data of the given texture.
7186 * 7308 *
7187 * @param texure The given texture 7309 * @param texure The given texture
7188 * @param color_format Color format of the texture. 7310 * @param color_format Color format of the texture.
7189 * @param pixel_format Pixel format of the data. 7311 * @param pixel_format Pixel format of the data.
7190 * @param w Width of the data. 7312 * @param w Width of the data.
7191 * @param h Height of the data. 7313 * @param h Height of the data.
7192 * @param data Pointer to the data. 7314 * @param data Pointer to the data.
7193 * 7315 *
7194 * @see evas_3d_texture_file_set() 7316 * @see evas_3d_texture_file_set()
7317 * @since 1.10
7195 * 7318 *
7196 * @ingroup Evas_3D_Texture 7319 * @ingroup Evas_3D_Texture
7197 */ 7320 */
@@ -7200,11 +7323,16 @@ EAPI void evas_3d_texture_data_set(Evas_3D_Texture *texture, Evas_
7200/** 7323/**
7201 * Set the data of the given texture from file. 7324 * Set the data of the given texture from file.
7202 * 7325 *
7203 * @param texture The given texture. 7326 * @param texture The given texture.
7204 * @param file Path to the image file. 7327 * @param file The image file path.
7205 * @param key Key in the image file. 7328 * @param key The image key in @p file (if its an Eet one), or @c NULL,
7329 * otherwise.
7330 *
7331 * If the file supports multiple data stored in it (as Eet files do),
7332 * you can specify the key to be used as the index of the image in
7333 * this file.
7206 * 7334 *
7207 * Only PNG format is supported. 7335 * @since 1.10
7208 * 7336 *
7209 * @ingroup Evas_3D_Texture 7337 * @ingroup Evas_3D_Texture
7210 */ 7338 */
@@ -7213,8 +7341,8 @@ EAPI void evas_3d_texture_file_set(Evas_3D_Texture *texture, const
7213/** 7341/**
7214 * Set the data of the given texture from an evas object. 7342 * Set the data of the given texture from an evas object.
7215 * 7343 *
7216 * @param texture The given texture. 7344 * @param texture The given texture.
7217 * @param source Source evas object to be used as the texture data. 7345 * @param source Source evas object to be used as the texture data.
7218 * 7346 *
7219 * Evas 3D support using existing evas object as a texture source. This feature 7347 * Evas 3D support using existing evas object as a texture source. This feature
7220 * make it possible using any exisiting evas object inside 3D scene. 7348 * make it possible using any exisiting evas object inside 3D scene.
@@ -7228,8 +7356,8 @@ EAPI void evas_3d_texture_source_set(Evas_3D_Texture *texture, Eva
7228/** 7356/**
7229 * Set the visibility flag of the source evas object of the given texture. 7357 * Set the visibility flag of the source evas object of the given texture.
7230 * 7358 *
7231 * @param texture The given texture. 7359 * @param texture The given texture.
7232 * @param visible @c EINA_TRUE for visible, @c EINA_FALSE for invisible. 7360 * @param visible @c EINA_TRUE for visible, @c EINA_FALSE for invisible.
7233 * 7361 *
7234 * Recommend to call evas_object_show() on the source object and controll the 7362 * Recommend to call evas_object_show() on the source object and controll the
7235 * visibility using this function. 7363 * visibility using this function.
@@ -7237,6 +7365,7 @@ EAPI void evas_3d_texture_source_set(Evas_3D_Texture *texture, Eva
7237 * By default, source object is visible. 7365 * By default, source object is visible.
7238 * 7366 *
7239 * @see evas_3d_texture_source_set() 7367 * @see evas_3d_texture_source_set()
7368 * @since 1.10
7240 * 7369 *
7241 * @ingroup Evas_3D_Texture 7370 * @ingroup Evas_3D_Texture
7242 */ 7371 */
@@ -7245,10 +7374,11 @@ EAPI void evas_3d_texture_source_visible_set(Evas_3D_Texture *text
7245/** 7374/**
7246 * Get the visibility flag of the source evas object of the given texture. 7375 * Get the visibility flag of the source evas object of the given texture.
7247 * 7376 *
7248 * @param texture The given texture. 7377 * @param texture The given texture.
7249 * @return @c EINA_TRUE if visible, @c EINA_FALSE if invisible. 7378 * @return @c EINA_TRUE if visible, @c EINA_FALSE if invisible.
7250 * 7379 *
7251 * @see evas_3d_texture_source_visible_set() 7380 * @see evas_3d_texture_source_visible_set()
7381 * @since 1.10
7252 * 7382 *
7253 * @ingroup Evas_3D_Texture 7383 * @ingroup Evas_3D_Texture
7254 */ 7384 */
@@ -7257,7 +7387,7 @@ EAPI Eina_Bool evas_3d_texture_source_visible_get(const Evas_3D_Texture
7257/** 7387/**
7258 * Get the color format of the given texture. 7388 * Get the color format of the given texture.
7259 * 7389 *
7260 * @param texture The given texture. 7390 * @param texture The given texture.
7261 * 7391 *
7262 * EVAS_3D_COLOR_FORMAT_RGBA will be returned if the texture has source object. 7392 * EVAS_3D_COLOR_FORMAT_RGBA will be returned if the texture has source object.
7263 * Otherwise, the color format of the data will be returned. 7393 * Otherwise, the color format of the data will be returned.
@@ -7265,6 +7395,7 @@ EAPI Eina_Bool evas_3d_texture_source_visible_get(const Evas_3D_Texture
7265 * @see evas_3d_texture_data_set() 7395 * @see evas_3d_texture_data_set()
7266 * @see evas_3d_texture_file_set() 7396 * @see evas_3d_texture_file_set()
7267 * @see evas_3d_texture_source_set() 7397 * @see evas_3d_texture_source_set()
7398 * @since 1.10
7268 * 7399 *
7269 * @ingroup Evas_3D_Texture 7400 * @ingroup Evas_3D_Texture
7270 */ 7401 */
@@ -7273,9 +7404,9 @@ EAPI Evas_3D_Color_Format evas_3d_texture_color_format_get(const Evas_3D_Texture
7273/** 7404/**
7274 * Get the size of the given texture. 7405 * Get the size of the given texture.
7275 * 7406 *
7276 * @param texture The given texture. 7407 * @param texture The given texture.
7277 * @param w Pointer to receive the width of the texture size. 7408 * @param w Pointer to receive the width of the texture size.
7278 * @param h Pointer to receive the height of the texture size. 7409 * @param h Pointer to receive the height of the texture size.
7279 * 7410 *
7280 * If the texture has source object, the size of the source object will be 7411 * If the texture has source object, the size of the source object will be
7281 * returned. Otherwise, the size of the data (or image file) will be returned. 7412 * returned. Otherwise, the size of the data (or image file) will be returned.
@@ -7283,6 +7414,7 @@ EAPI Evas_3D_Color_Format evas_3d_texture_color_format_get(const Evas_3D_Texture
7283 * @see evas_3d_texture_data_set() 7414 * @see evas_3d_texture_data_set()
7284 * @see evas_3d_texture_file_set() 7415 * @see evas_3d_texture_file_set()
7285 * @see evas_3d_texture_source_set() 7416 * @see evas_3d_texture_source_set()
7417 * @since 1.10
7286 * 7418 *
7287 * @ingroup Evas_3D_Texture 7419 * @ingroup Evas_3D_Texture
7288 */ 7420 */
@@ -7291,15 +7423,17 @@ EAPI void evas_3d_texture_size_get(const Evas_3D_Texture *texture,
7291/** 7423/**
7292 * Set the wrap mode of the given texture. 7424 * Set the wrap mode of the given texture.
7293 * 7425 *
7294 * @param texture The given texture. 7426 * @param texture The given texture.
7295 * @param s Wrap mode for S-axis. 7427 * @param s Wrap mode for S-axis.
7296 * @param t Wrap mode for T-axis. 7428 * @param t Wrap mode for T-axis.
7297 * 7429 *
7298 * If the texture coordinate exceed range [0.0, 1.0] the values are modified 7430 * If the texture coordinate exceed range [0.0, 1.0] the values are modified
7299 * according to the wrap mode. 7431 * according to the wrap mode.
7300 * 7432 *
7301 * Default wrap modes are both EVAS_3D_WRAP_MODE_CLAMP for s and t. 7433 * Default wrap modes are both EVAS_3D_WRAP_MODE_CLAMP for s and t.
7302 * 7434 *
7435 * @since 1.10
7436 *
7303 * @ingroup Evas_3D_Texture 7437 * @ingroup Evas_3D_Texture
7304 */ 7438 */
7305EAPI void evas_3d_texture_wrap_set(Evas_3D_Texture *texture, Evas_3D_Wrap_Mode s, Evas_3D_Wrap_Mode t) EINA_ARG_NONNULL(1); 7439EAPI void evas_3d_texture_wrap_set(Evas_3D_Texture *texture, Evas_3D_Wrap_Mode s, Evas_3D_Wrap_Mode t) EINA_ARG_NONNULL(1);
@@ -7307,11 +7441,12 @@ EAPI void evas_3d_texture_wrap_set(Evas_3D_Texture *texture, Evas_
7307/** 7441/**
7308 * Get the wrap mode of the given texture. 7442 * Get the wrap mode of the given texture.
7309 * 7443 *
7310 * @param texture The given texture. 7444 * @param texture The given texture.
7311 * @param s Pointer to receive S-axis wrap mode. 7445 * @param s Pointer to receive S-axis wrap mode.
7312 * @param t Pointer to receive T-axis wrap mode. 7446 * @param t Pointer to receive T-axis wrap mode.
7313 * 7447 *
7314 * @see evas_3d_texture_wrap_set() 7448 * @see evas_3d_texture_wrap_set()
7449 * @since 1.10
7315 * 7450 *
7316 * @ingroup Evas_3D_Texture 7451 * @ingroup Evas_3D_Texture
7317 */ 7452 */
@@ -7320,12 +7455,14 @@ EAPI void evas_3d_texture_wrap_get(Evas_3D_Texture *texture, Evas_
7320/** 7455/**
7321 * Set the filter of the given texture. 7456 * Set the filter of the given texture.
7322 * 7457 *
7323 * @param texture The given texture. 7458 * @param texture The given texture.
7324 * @param min Minification filter used when down-scaling. 7459 * @param min Minification filter used when down-scaling.
7325 * @param mag Magnification filter used when up-scaling. 7460 * @param mag Magnification filter used when up-scaling.
7326 * 7461 *
7327 * Default filters are both EVAS_3D_TEXTURE_FILTER_NEAREST for s and t. 7462 * Default filters are both EVAS_3D_TEXTURE_FILTER_NEAREST for s and t.
7328 * 7463 *
7464 * @since 1.10
7465 *
7329 * @ingroup Evas_3D_Texture 7466 * @ingroup Evas_3D_Texture
7330 */ 7467 */
7331EAPI void evas_3d_texture_filter_set(Evas_3D_Texture *texture, Evas_3D_Texture_Filter min, Evas_3D_Texture_Filter mag) EINA_ARG_NONNULL(1); 7468EAPI void evas_3d_texture_filter_set(Evas_3D_Texture *texture, Evas_3D_Texture_Filter min, Evas_3D_Texture_Filter mag) EINA_ARG_NONNULL(1);
@@ -7333,11 +7470,12 @@ EAPI void evas_3d_texture_filter_set(Evas_3D_Texture *texture, Eva
7333/** 7470/**
7334 * Get the filter of the given texture. 7471 * Get the filter of the given texture.
7335 * 7472 *
7336 * @param texture The given texture. 7473 * @param texture The given texture.
7337 * @param min Pointer to receive the minification filter. 7474 * @param min Pointer to receive the minification filter.
7338 * @param mag Pointer to receive the magnification filter. 7475 * @param mag Pointer to receive the magnification filter.
7339 * 7476 *
7340 * @see evas_3d_texture_filter_set() 7477 * @see evas_3d_texture_filter_set()
7478 * @since 1.10
7341 * 7479 *
7342 * @ingroup Evas_3D_Texture 7480 * @ingroup Evas_3D_Texture
7343 */ 7481 */
@@ -7346,9 +7484,11 @@ EAPI void evas_3d_texture_filter_get(const Evas_3D_Texture *textur
7346/** 7484/**
7347 * Create a new material on the given Evas @p canvas. 7485 * Create a new material on the given Evas @p canvas.
7348 * 7486 *
7349 * @param e The given canvas. 7487 * @param e The given canvas.
7350 * @param type The type of the material. 7488 * @param type The type of the material.
7351 * @return The created material handle. 7489 * @return The created material handle.
7490 *
7491 * @since 1.10
7352 * 7492 *
7353 * @ingroup Evas_3D_Material 7493 * @ingroup Evas_3D_Material
7354 */ 7494 */
@@ -7360,29 +7500,19 @@ EAPI Evas_3D_Material *evas_3d_material_add(Evas *e) EINA_WARN_UNUSED_RESULT EI
7360 * @param material The given material. 7500 * @param material The given material.
7361 * 7501 *
7362 * @see evas_3d_material_add() 7502 * @see evas_3d_material_add()
7503 * @since 1.10
7363 * 7504 *
7364 * @ingroup Evas_3D_Material 7505 * @ingroup Evas_3D_Material
7365 */ 7506 */
7366EAPI void evas_3d_material_del(Evas_3D_Material *material) EINA_ARG_NONNULL(1); 7507EAPI void evas_3d_material_del(Evas_3D_Material *material) EINA_ARG_NONNULL(1);
7367 7508
7368/** 7509/**
7369 * Get the Evas canvas where the given material belongs to.
7370 *
7371 * @param material The given material.
7372 * @return The Evas canvas.
7373 *
7374 * @see evas_3d_material_add()
7375 *
7376 * @ingroup Evas_3D_Material
7377 */
7378//EAPI Evas *evas_3d_material_evas_get(const Evas_3D_Material *material) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7379
7380/**
7381 * Set the material attribute enable flag of the given material. 7510 * Set the material attribute enable flag of the given material.
7382 * 7511 *
7383 * @param material The given material. 7512 * @param material The given material.
7384 * @param attrib Material attribute ID. 7513 * @param attrib Material attribute ID.
7385 * @param enable Whether to enable the attribute (@c EINA_TRUE), or not (@c EINA_FALSE). 7514 * @param enable Whether to enable the attribute (@c EINA_TRUE), or not
7515 * (@c EINA_FALSE).
7386 * 7516 *
7387 * You might want to disable some material reflection contribution. For 7517 * You might want to disable some material reflection contribution. For
7388 * example,Emission attribute is rarely used. Disabling unused attributes 7518 * example,Emission attribute is rarely used. Disabling unused attributes
@@ -7390,6 +7520,8 @@ EAPI void evas_3d_material_del(Evas_3D_Material *material) EINA_AR
7390 * 7520 *
7391 * By default, diffuse and specular is enabled. 7521 * By default, diffuse and specular is enabled.
7392 * 7522 *
7523 * @since 1.10
7524 *
7393 * @ingroup Evas_3D_Material 7525 * @ingroup Evas_3D_Material
7394 */ 7526 */
7395EAPI void evas_3d_material_enable_set(Evas_3D_Material *material, Evas_3D_Material_Attrib attrib, Eina_Bool enable) EINA_ARG_NONNULL(1); 7527EAPI void evas_3d_material_enable_set(Evas_3D_Material *material, Evas_3D_Material_Attrib attrib, Eina_Bool enable) EINA_ARG_NONNULL(1);
@@ -7397,11 +7529,12 @@ EAPI void evas_3d_material_enable_set(Evas_3D_Material *material,
7397/** 7529/**
7398 * Get the material attribute enable flag of the given material. 7530 * Get the material attribute enable flag of the given material.
7399 * 7531 *
7400 * @param material The given material. 7532 * @param material The given material.
7401 * @param attrib Material attribute ID. 7533 * @param attrib Material attribute ID.
7402 * @return @c EINA_TRUE if enabled, or @c EINA_FALSE if not. 7534 * @return @c EINA_TRUE if enabled, or @c EINA_FALSE if not.
7403 * 7535 *
7404 * @see evas_3d_material_enable_set() 7536 * @see evas_3d_material_enable_set()
7537 * @since 1.10
7405 * 7538 *
7406 * @ingroup Evas_3D_Material 7539 * @ingroup Evas_3D_Material
7407 */ 7540 */
@@ -7410,12 +7543,12 @@ EAPI Eina_Bool evas_3d_material_enable_get(const Evas_3D_Material *mate
7410/** 7543/**
7411 * Set the material attribute color of the given material. 7544 * Set the material attribute color of the given material.
7412 * 7545 *
7413 * @param material The given material. 7546 * @param material The given material.
7414 * @param attrib Material attribute ID. 7547 * @param attrib Material attribute ID.
7415 * @param r Red component of the color. 7548 * @param r Red component of the color.
7416 * @param g Green component of the color. 7549 * @param g Green component of the color.
7417 * @param b Blue component of the color. 7550 * @param b Blue component of the color.
7418 * @param a Alpha component of the color. 7551 * @param a Alpha component of the color.
7419 * 7552 *
7420 * Material color is used also when texture map is enabled. The colors will be 7553 * Material color is used also when texture map is enabled. The colors will be
7421 * modulated (multiplied). To controll the color contribution of a material 7554 * modulated (multiplied). To controll the color contribution of a material
@@ -7430,6 +7563,8 @@ EAPI Eina_Bool evas_3d_material_enable_get(const Evas_3D_Material *mate
7430 * Emission : (0.0, 0.0, 0.0, 1.0) 7563 * Emission : (0.0, 0.0, 0.0, 1.0)
7431 * Normal : Not used 7564 * Normal : Not used
7432 * 7565 *
7566 * @since 1.10
7567 *
7433 * @ingroup Evas_3D_Material 7568 * @ingroup Evas_3D_Material
7434 */ 7569 */
7435EAPI void evas_3d_material_color_set(Evas_3D_Material *material, Evas_3D_Material_Attrib attrib, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1); 7570EAPI void evas_3d_material_color_set(Evas_3D_Material *material, Evas_3D_Material_Attrib attrib, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1);
@@ -7437,14 +7572,15 @@ EAPI void evas_3d_material_color_set(Evas_3D_Material *material, E
7437/** 7572/**
7438 * Get the material attribute color of the given material. 7573 * Get the material attribute color of the given material.
7439 * 7574 *
7440 * @param material The given material. 7575 * @param material The given material.
7441 * @param attrib Material attribute ID. 7576 * @param attrib Material attribute ID.
7442 * @param r Pointer to receive red component of the color. 7577 * @param r Pointer to receive red component of the color.
7443 * @param g Pointer to receive green component of the color. 7578 * @param g Pointer to receive green component of the color.
7444 * @param b Pointer to receive blue component of the color. 7579 * @param b Pointer to receive blue component of the color.
7445 * @param a Pointer to receive alpha component of the color. 7580 * @param a Pointer to receive alpha component of the color.
7446 * 7581 *
7447 * @see evas_3d_material_color_set() 7582 * @see evas_3d_material_color_set()
7583 * @since 1.10
7448 * 7584 *
7449 * @ingroup Evas_3D_Material 7585 * @ingroup Evas_3D_Material
7450 */ 7586 */
@@ -7453,8 +7589,8 @@ EAPI void evas_3d_material_color_get(const Evas_3D_Material *mater
7453/** 7589/**
7454 * Set the shininess of the given material. 7590 * Set the shininess of the given material.
7455 * 7591 *
7456 * @param material The given material. 7592 * @param material The given material.
7457 * @param shininess Shininess value. 7593 * @param shininess Shininess value.
7458 * 7594 *
7459 * Shininess is only used when specular attribute is enabled. Higher shininess 7595 * Shininess is only used when specular attribute is enabled. Higher shininess
7460 * value will make the object more shiny. 7596 * value will make the object more shiny.
@@ -7462,6 +7598,7 @@ EAPI void evas_3d_material_color_get(const Evas_3D_Material *mater
7462 * Default shininess value is 150.0. 7598 * Default shininess value is 150.0.
7463 * 7599 *
7464 * @see evas_3d_material_enable_set() 7600 * @see evas_3d_material_enable_set()
7601 * @since 1.10
7465 * 7602 *
7466 * @ingroup Evas_3D_Material 7603 * @ingroup Evas_3D_Material
7467 */ 7604 */
@@ -7470,10 +7607,11 @@ EAPI void evas_3d_material_shininess_set(Evas_3D_Material *materia
7470/** 7607/**
7471 * Get the shininess of the given material. 7608 * Get the shininess of the given material.
7472 * 7609 *
7473 * @param material The given material. 7610 * @param material The given material.
7474 * @return The shininess value. 7611 * @return The shininess value.
7475 * 7612 *
7476 * @see evas_3d_material_shininess_set() 7613 * @see evas_3d_material_shininess_set()
7614 * @since 1.10
7477 * 7615 *
7478 * @ingroup Evas_3D_Material 7616 * @ingroup Evas_3D_Material
7479 */ 7617 */
@@ -7482,13 +7620,14 @@ EAPI Evas_Real evas_3d_material_shininess_get(const Evas_3D_Material *m
7482/** 7620/**
7483 * Set the texture of the given material. 7621 * Set the texture of the given material.
7484 * 7622 *
7485 * @param material The given material. 7623 * @param material The given material.
7486 * @param attrib Material attribute ID. 7624 * @param attrib Material attribute ID.
7487 * @param texture Texture to be set. 7625 * @param texture Texture to be set.
7488 * 7626 *
7489 * You have to enable the desired attribute first. 7627 * You have to enable the desired attribute first.
7490 * 7628 *
7491 * @see evas_3d_material_enable_set() 7629 * @see evas_3d_material_enable_set()
7630 * @since 1.10
7492 * 7631 *
7493 * @ingroup Evas_3D_Material 7632 * @ingroup Evas_3D_Material
7494 */ 7633 */
@@ -7497,11 +7636,12 @@ EAPI void evas_3d_material_texture_set(Evas_3D_Material *material,
7497/** 7636/**
7498 * Get the texture of the given material. 7637 * Get the texture of the given material.
7499 * 7638 *
7500 * @param material The given material. 7639 * @param material The given material.
7501 * @param attrib Material attribute ID. 7640 * @param attrib Material attribute ID.
7502 * @return The texture that is set to the given material attribute. 7641 * @return The texture that is set to the given material attribute.
7503 * 7642 *
7504 * @see evas_3d_material_texture_set() 7643 * @see evas_3d_material_texture_set()
7644 * @since 1.10
7505 * 7645 *
7506 * @ingroup Evas_3D_Material 7646 * @ingroup Evas_3D_Material
7507 */ 7647 */