v2 / vlib / sokol / sgl / sgl_funcs.c.v
103 lines · 94 sloc · 4.07 KB · be5f14a17085b766d34320b2a66aac794239f658
Raw
1module sgl
2
3// setup/shutdown/misc
4fn C.sgl_setup(const_desc &C.sgl_desc_t)
5fn C.sgl_shutdown()
6fn C.sgl_error() SglError
7fn C.sgl_context_error(ctx C.sgl_context) SglError
8fn C.sgl_rad(deg f32) f32
9fn C.sgl_deg(rad f32) f32
10
11// context functions
12fn C.sgl_make_context(const_desc &C.sgl_context_desc_t) C.sgl_context
13fn C.sgl_destroy_context(ctx C.sgl_context)
14fn C.sgl_set_context(ctx C.sgl_context)
15fn C.sgl_get_context() C.sgl_context
16fn C.sgl_default_context() C.sgl_context
17
18// create and destroy pipeline objects
19fn C.sgl_make_pipeline(const_desc &C.sg_pipeline_desc) C.sgl_pipeline
20fn C.sgl_context_make_pipeline(ctx C.sgl_context, const_desc &C.sg_pipeline_desc) C.sgl_pipeline
21fn C.sgl_destroy_pipeline(pip C.sgl_pipeline)
22
23// render state functions
24fn C.sgl_defaults()
25fn C.sgl_viewport(x int, y int, w int, h int, origin_top_left bool)
26fn C.sgl_viewportf(x f32, y f32, w f32, h f32, origin_top_left bool)
27fn C.sgl_scissor_rect(x int, y int, w int, h int, origin_top_left bool)
28fn C.sgl_scissor_rectf(x f32, y f32, w f32, h f32, origin_top_left bool)
29fn C.sgl_enable_texture()
30fn C.sgl_disable_texture()
31fn C.sgl_texture(img C.sg_image, sampler C.sg_sampler)
32
33// pipeline stack functions
34fn C.sgl_load_default_pipeline()
35fn C.sgl_load_pipeline(pip C.sgl_pipeline)
36fn C.sgl_push_pipeline()
37fn C.sgl_pop_pipeline()
38
39// matrix stack functions
40fn C.sgl_matrix_mode_modelview()
41fn C.sgl_matrix_mode_projection()
42fn C.sgl_matrix_mode_texture()
43fn C.sgl_load_identity()
44fn C.sgl_load_matrix(m [16]f32)
45fn C.sgl_load_transpose_matrix(m [16]f32)
46fn C.sgl_mult_matrix(m [16]f32)
47fn C.sgl_mult_transpose_matrix(m [16]f32)
48fn C.sgl_rotate(angle_rad f32, x f32, y f32, z f32)
49fn C.sgl_scale(x f32, y f32, z f32)
50fn C.sgl_translate(x f32, y f32, z f32)
51fn C.sgl_frustum(l f32, r f32, b f32, t f32, n f32, f f32)
52fn C.sgl_ortho(l f32, r f32, b f32, t f32, n f32, f f32)
53fn C.sgl_perspective(fov_y f32, aspect f32, z_near f32, z_far f32)
54fn C.sgl_lookat(eye_x f32, eye_y f32, eye_z f32, center_x f32, center_y f32, center_z f32, up_x f32, up_y f32,
55 up_z f32)
56fn C.sgl_push_matrix()
57fn C.sgl_pop_matrix()
58
59// these functions only set the internal 'current texcoord / color' (valid inside or outside begin/end)
60fn C.sgl_t2f(u f32, v f32)
61fn C.sgl_c3f(r f32, g f32, b f32)
62fn C.sgl_c4f(r f32, g f32, b f32, a f32)
63fn C.sgl_c3b(r u8, g u8, b u8)
64fn C.sgl_c4b(r u8, g u8, b u8, a u8)
65fn C.sgl_c1i(rgba u32)
66fn C.sgl_point_size(s f32)
67
68// define primitives, each begin/end is one draw command
69fn C.sgl_begin_points()
70fn C.sgl_begin_lines()
71fn C.sgl_begin_line_strip()
72fn C.sgl_begin_triangles()
73fn C.sgl_begin_triangle_strip()
74fn C.sgl_begin_quads()
75fn C.sgl_v2f(x f32, y f32)
76fn C.sgl_v3f(x f32, y f32, z f32)
77fn C.sgl_v2f_t2f(x f32, y f32, u f32, v f32)
78fn C.sgl_v3f_t2f(x f32, y f32, z f32, u f32, v f32)
79fn C.sgl_v2f_c3f(x f32, y f32, r f32, g f32, b f32)
80fn C.sgl_v2f_c3b(x f32, y f32, r u8, g u8, b u8)
81fn C.sgl_v2f_c4f(x f32, y f32, r f32, g f32, b f32, a f32)
82fn C.sgl_v2f_c4b(x f32, y f32, r u8, g u8, b u8, a u8)
83fn C.sgl_v2f_c1i(x f32, y f32, rgba u32)
84fn C.sgl_v3f_c3f(x f32, y f32, z f32, r f32, g f32, b f32)
85fn C.sgl_v3f_c3b(x f32, y f32, z f32, r u8, g u8, b u8)
86fn C.sgl_v3f_c4f(x f32, y f32, z f32, r f32, g f32, b f32, a f32)
87fn C.sgl_v3f_c4b(x f32, y f32, z f32, r u8, g u8, b u8, a u8)
88fn C.sgl_v3f_c1i(x f32, y f32, z f32, rgba u32)
89fn C.sgl_v2f_t2f_c3f(x f32, y f32, u f32, v f32, r f32, g f32, b f32)
90fn C.sgl_v2f_t2f_c3b(x f32, y f32, u f32, v f32, r u8, g u8, b u8)
91fn C.sgl_v2f_t2f_c4f(x f32, y f32, u f32, v f32, r f32, g f32, b f32, a f32)
92fn C.sgl_v2f_t2f_c4b(x f32, y f32, u f32, v f32, r u8, g u8, b u8, a u8)
93fn C.sgl_v2f_t2f_c1i(x f32, y f32, u f32, v f32, rgba u32)
94fn C.sgl_v3f_t2f_c3f(x f32, y f32, z f32, u f32, v f32, r f32, g f32, b f32)
95fn C.sgl_v3f_t2f_c3b(x f32, y f32, z f32, u f32, v f32, r u8, g u8, b u8)
96fn C.sgl_v3f_t2f_c4f(x f32, y f32, z f32, u f32, v f32, r f32, g f32, b f32, a f32)
97fn C.sgl_v3f_t2f_c4b(x f32, y f32, z f32, u f32, v f32, r u8, g u8, b u8, a u8)
98fn C.sgl_v3f_t2f_c1i(x f32, y f32, z f32, u f32, v f32, rgba u32)
99fn C.sgl_end()
100
101// render recorded commands
102fn C.sgl_draw()
103fn C.sgl_context_draw(ctx C.sgl_context)
104