path: root/src/lib/evas/canvas/evas_canvas3d_types.eot
blob: 84153ae201e48403e1e52feca3a9687776ccf93b (plain) (tree)












// ----------------------------------------------------------------------------
// 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]]