summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_canvas3d_types.eot
blob: a050af3be96a9357e1a5cb4d2e94dc1371cbd52d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
// ----------------------------------------------------------------------------
// 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]]
   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 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]]