294 lines
11 KiB
Plaintext
294 lines
11 KiB
Plaintext
// ----------------------------------------------------------------------------
|
|
// All the below types are for Evas 3D
|
|
|
|
type @beta Evas.Real: double; [[A type for floating value]]
|
|
|
|
enum @beta 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 @beta 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 @beta Evas.Canvas3D.Space
|
|
{
|
|
[[Transform space
|
|
|
|
@since 1.10]]
|
|
local = 0, [[Local coordinate space]]
|
|
parent, [[Parent coordinate space]]
|
|
world [[World coordinate space]]
|
|
}
|
|
|
|
enum @beta Evas.Canvas3D.Node_Type
|
|
{
|
|
[[Types of a node
|
|
|
|
@since 1.10]]
|
|
unknown = -1, [[Unknown node type @since 1.21]]
|
|
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 @beta 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 @beta 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 @beta Evas.Canvas3D.Frustum_Mode
|
|
{
|
|
[[Frustum modes
|
|
|
|
@since 1.12]]
|
|
bsphere, [[Bounding sphere]]
|
|
aabb, [[Axis-aligned bounding box]]
|
|
central_point [[Central point]]
|
|
}
|
|
|
|
enum @beta 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 @beta 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 @beta 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 @beta 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 @beta 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 @beta 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 @beta 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 @beta 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 @beta 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 @beta 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 @beta Evas.Canvas3D.Surface_Func: __undefined_type; [[Evas 3D canvas surface function type]]
|