// ----------------------------------------------------------------------------
// All the below types are for Evas 3D
type Evas.Real: double; [[A type for floating value]]
enum Evas.Canvas3D.Object_Type
{
[[Type of 3D Object
@since 1.10]]
invalid = 0, [[Evas 3D type: invalid]]
scene, [[Evas 3D type: scene]]
node, [[Evas 3D type: node]]
camera, [[Evas 3D type: camera]]
light, [[Evas 3D type: light]]
model, [[Evas 3D type: model]]
mesh, [[Evas 3D type: mesh]]
texture, [[Evas 3D type: texture]]
material, [[Evas 3D type: material]]
primitive [[Evas 3D type: primitive
@since 1.15]]
}
enum Evas.Canvas3D.State
{
[[State of the Evas 3D
@since 1.10]]
max = 16, [[Evas 3D state: max]]
any = 0, [[Evas 3D state: any]]
scene_root_node = 1, [[Evas 3D state: scene root node]]
scene_camera_node, [[Evas 3D state: scene camera node]]
scene_background_color, [[Evas 3D state: scene background color]]
scene_size, [[Evas 3D state: scene size]]
scene_shadows_enabled, [[Evas 3D state: scene shadows enabled]]
scene_updated, [[Evas 3D state: scene updated
@since 1.14]]
scene_shadows_depth, [[Evas 3D state: scene shadows depth]]
scene_render_to_texture, [[Evas 3D state: scene render to texture]]
texture_data = 1, [[Evas 3D state: texture data]]
texture_wrap, [[Evas 3D state: texture wrap]]
texture_filter, [[Evas 3D state: texture filter]]
material_id = 1, [[Evas 3D state: material ID]]
material_color, [[Evas 3D state: material color]]
material_texture, [[Evas 3D state: material texture]]
mesh_vertex_count = 1, [[Evas 3D state: mesh vertex count]]
mesh_frame, [[Evas 3D state: mesh frame]]
mesh_material, [[Evas 3D state: mesh material]]
mesh_transform, [[Evas 3D state: mesh transform]]
mesh_vertex_data, [[Evas 3D state: mesh vertex data]]
mesh_index_data, [[Evas 3D state: mesh index data]]
mesh_vertex_assembly, [[Evas 3D state: mesh vertex assembly]]
mesh_shader_mode, [[Evas 3D state: mesh shader mode]]
mesh_fog, [[Evas 3D state: mesh fog]]
mesh_blending, [[Evas 3D state: mesh blending]]
mesh_alpha_test, [[Evas 3D state: mesh alpha test]]
mesh_color_pick, [[Evas 3D state: mesh color pick]]
mesh_shadows_edges_filtering, [[Evas 3D state: mesh shadows edges filtering]]
mesh_shadows_constant_bias, [[Evas 3D state: mesh shadows constant bias]]
camera_projection = 1, [[Evas 3D state: camera projection]]
light_ambient = 1, [[Evas 3D state: light ambient]]
light_diffuse, [[Evas 3D state: light diffuse]]
light_specular, [[Evas 3D state: light specular]]
light_spot_dir, [[Evas 3D state: light spot dir]]
light_spot_exp, [[Evas 3D state: light spot exp]]
light_spot_cutoff, [[Evas 3D state: light spot cutoff]]
light_attenuation, [[Evas 3D state: light attenuation]]
light_projection, [[Evas 3D state: light projection]]
node_transform_position = 1, [[Evas 3D state: node transform position]]
node_transform_orientation, [[Evas 3D state: node transform orientation]]
node_transform_scale, [[Evas 3D state: node transform scale]]
node_mesh_geometry, [[Evas 3D state: node mesh geometry]]
node_mesh_material, [[Evas 3D state: node mesh material]]
node_mesh_frame, [[Evas 3D state: node mesh frame]]
node_mesh_shader_mode, [[Evas 3D state: node mesh shader mode]]
node_mesh_material_id, [[Evas 3D state: node mesh material ID]]
node_light, [[Evas 3D state: node light]]
node_camera, [[Evas 3D state: node camera]]
node_parent_position, [[Evas 3D state: node parent position]]
node_parent_orientation, [[Evas 3D state: node parent orientation]]
node_parent_scale, [[Evas 3D state: node parent scale]]
node_member, [[Evas 3D state: node member]]
node_parent_billboard, [[Evas 3D state: node parent billboard
@since 1.14]]
node_lod [[Evas 3D state: node lod
@since 1.18]]
}
enum Evas.Canvas3D.Space
{
[[Transform space
@since 1.10]]
local = 0, [[Local coordinate space]]
parent, [[Parent coordinate space]]
world [[World coordinate space]]
}
enum Evas.Canvas3D.Node_Type
{
[[Types of a node
@since 1.10]]
node = 0, [[Node with no items]]
camera, [[Node which can contain camera object]]
light, [[Node which can contain light object]]
mesh [[Node which can contain mesh objects]]
}
enum Evas.Canvas3D.Node_Orientation_Type
{
[[Types of node orientation
@since 1.13]]
none = 0, [[Node with no orientation properties]]
look_at, [[Node orientation is given as a point to look at and a vector that indicates the angle at which the subject is looking at the point]]
look_to, [[Node orientation is given as id of another part to look at and a vector that indicates the angle at which the subject is looking at the part]]
angle_axis, [[Node orientation is given as an angle and an axis to rotate around]]
quaternion [[Node orientation is given as a quaternion]]
}
enum Evas.Canvas3D.Index_Format
{
[[Index formats
@since 1.10]]
none = 0, [[Indexing is not used]]
unsigned_byte, [[Index is of type unsigned byte]]
unsigned_short [[Index is of type unsigned short]]
}
enum Evas.Canvas3D.Frustum_Mode
{
[[Frustum modes
@since 1.12]]
bsphere, [[Bounding sphere]]
aabb, [[Axis-aligned bounding box]]
central_point [[Central point]]
}
enum Evas.Canvas3D.Vertex_Assembly
{
[[Vertex assembly modes. Vertex assembly represents how the vertices are organized into geometric primitives.
@since 1.10]]
points = 0, [[A vertex is rendered as a point]]
lines, [[Two vertices are organized as a line]]
line_strip, [[Vertices are organized as a connected line path]]
line_loop, [[Vertices are organized as a closed line path]]
triangles, [[Three vertices are organized as a triangle]]
triangle_strip, [[Vertices are organized as connected triangles]]
triangle_fan [[Vertices are organized as a triangle fan]]
}
enum Evas.Canvas3D.Comparison
{
[[Comparsion functions for testing(alpha, depth, stencil) in fragment shader
@since 1.14]]
never, [[Never passes]]
less, [[Passes if the incoming value is less than the reference value]]
equal, [[Passes if the incoming value is equal to the reference value]]
lequal, [[Passes if the incoming value is less than or equal to the reference value]]
greater, [[Passes if the incoming value is greater than the reference value]]
notequal, [[Passes if the incoming value is not equal to the reference value]]
gequal, [[Passes if the incoming value is greater than or equal to the reference value]]
always [[Always passes (initial value)]]
}
enum Evas.Canvas3D.Wrap_Mode
{
[[Wrap modes for texture units
@since 1.14]]
clamp = 0, [[Values will be clamped to be in range (min, max)]]
repeat, [[Values will be repeated]]
reflect [[Values will be repeated in a reflected manner]]
}
enum Evas.Canvas3D.Texture_Filter
{
[[Filters for texture units
@since 1.14]]
nearest = 0, [[Samples nearest texel]]
linear, [[Lineary interpolate nearby texels]]
nearest_mipmap_nearest, [[Nearest sampling mipmap]]
linear_mipmap_nearest, [[Nearest sampling mipmap and interpolate]]
nearest_mipmap_linear, [[Linear sampling in nearest mipmap]]
linear_mipmap_linear [[Linear sampling in mipmap and interpolate]]
}
enum Evas.Canvas3D.Mesh_Primitive
{
[[Mesh primitive
@since 1.12]]
none = 0, [[An empty space]]
square, [[One sided square]]
cube, [[Cube primitive]]
cylinder, [[Cylinder (can use precision and texture scale)]]
cone, [[Cone (can use precision and texture scale)]]
sphere, [[Sphere (can use precision and texture scale)]]
torus, [[Torus (can use ratio, precision and texture scale)]]
surface, [[Custom surface (can use pointer to users function, precision and texture scale)]]
terrain, [[Terrain as surface with pointer to perlin's noise function]]
count [[Sentinel value to indicate last enum field during iteration]]
}
enum Evas.Canvas3D.Primitive_Mode
{
[[Mode of mesh primitive
@since 1.15]]
default = 0, [[Default mode of primitive]]
without_base, [[Primitive without base (supported for cylinder and cone)]]
alternative_uv [[Ptimitive with alternative uv (supported for sphere)]]
}
enum Evas.Canvas3D.Shader_Mode
{
[[Shader shade modes
@since 1.10]]
vertex_color = 0, [[Shaded using vertex color attribute]]
diffuse, [[Shaded using material diffuse term]]
flat, [[Per-vertex flat lighting]]
phong, [[Per-pixel phong shading]]
normal_map, [[Per-pixel normal map shading]]
shadow_map_render, [[Fragment color is defined by its z-coord]]
color_pick, [[Rendering to additional frame bufer]]
parallax_occlusion, [[Per-pixel parallax occlusion map shading]]
post_processing_FXAA [[Render full screen quard]]
}
enum Evas.Canvas3D.Vertex_Attrib
{
[[Vertex attribute IDs
@since 1.10]]
position = 0, [[vertex position]]
normal, [[vertex normal]]
tangent, [[vertex tangent (for normal mapping)]]
color, [[vertex color]]
texcoord [[vertex texture coordinate]]
}
enum Evas.Canvas3D.Blend_Func
{
[[Blending function
@since 1.14]]
zero = 0, [[The scale factors for color components is (0, 0, 0, 0)]]
one, [[The scale factors for color components is (1, 1, 1, 1)]]
src_color, [[The scale factors for color components is (rs/kr, gs/kg, bs/kb, as/ka)]]
one_minus_src_color, [[The scale factors for color components is (1, 1, 1, 1) - (rs/kr, gs/kg, bs/kb, as/ka)]]
dst_color, [[The scale factors for color components is (rd/kr, gd/kg, bd/kb, ad/ka)]]
one_minus_dst_color, [[The scale factors for color components is (1, 1, 1, 1) - (rd/kr, gd/kg, bd/kb, ad/ka)]]
src_alpha, [[The scale factors for color components is (as/ka, as/ka, as/ka, as/ka)]]
one_minus_src_alpha, [[The scale factors for color components is (1, 1, 1, 1) - (as/ka, as/ka, as/ka, as/ka)]]
dst_alpha, [[The scale factors for color components is (ad/ka, ad/ka, ad/ka, ad/ka)]]
one_minus_dst_alpha, [[The scale factors for color components is (1, 1, 1, 1) - (ad/ka, ad/ka, ad/ka, ad/ka)]]
constant_color, [[The scale factors for color components is (rc, gc, bc, ac)]]
one_minus_constant_color, [[The scale factors for color components is (1, 1, 1, 1) - (rc, gc, bc, ac)]]
constant_alpha, [[The scale factors for color components is (ac, ac, ac, ac)]]
one_minus_constant_alpha, [[The scale factors for color components is (1, 1, 1, 1) - (ac, ac, ac, ac)]]
src_alpha_saturate [[The scale factors for color components is (i, i, i, 1) where i = min(as, ka, ad)/ka]]
}
enum Evas.Canvas3D.Material_Attrib
{
[[Material attributes
@since 1.10]]
ambient = 0, [[ambient term]]
diffuse, [[diffuse term]]
specular, [[specular term]]
emission, [[emission term]]
normal [[Normal map term]]
}
type Evas.Canvas3D.Surface_Func: __undefined_type; [[Evas 3D canvas surface function type]]