1 /++
2 + Machine generated D bindings for Sokol library.
3 + 
4 +     Generated on: 2025-06-01 10:38:03
5 + 
6 +     Source header: sokol_gl.h
7 +     Module: sokol.gl
8 + 
9 +     Do not edit manually; regenerate using gen_d.py.
10 +/
11 module sokol.gl;
12 import sg = sokol.gfx;
13 
14 enum LogItem {
15     Ok,
16     Malloc_failed,
17     Make_pipeline_failed,
18     Pipeline_pool_exhausted,
19     Add_commit_listener_failed,
20     Context_pool_exhausted,
21     Cannot_destroy_default_context,
22 }
23 /++
24 + sgl_logger_t
25 + 
26 +     Used in sgl_desc_t to provide a custom logging and error reporting
27 +     callback to sokol-gl.
28 +/
29 extern(C) struct Logger {
30     extern(C) void function(const(char)*, uint, uint, const(char)*, uint, const(char)*, void*) func = null;
31     void* user_data = null;
32 }
33 /++
34 + sokol_gl pipeline handle (created with sgl_make_pipeline())
35 +/
36 extern(C) struct Pipeline {
37     uint id = 0;
38 }
39 /++
40 + a context handle (created with sgl_make_context())
41 +/
42 extern(C) struct Context {
43     uint id = 0;
44 }
45 /++
46 + sgl_error_t
47 + 
48 +     Errors are reset each frame after calling sgl_draw(),
49 +     get the last error code with sgl_error()
50 +/
51 extern(C) struct Error {
52     bool any = false;
53     bool vertices_full = false;
54     bool uniforms_full = false;
55     bool commands_full = false;
56     bool stack_overflow = false;
57     bool stack_underflow = false;
58     bool no_context = false;
59 }
60 /++
61 + sgl_context_desc_t
62 + 
63 +     Describes the initialization parameters of a rendering context.
64 +     Creating additional contexts is useful if you want to render
65 +     in separate sokol-gfx passes.
66 +/
67 extern(C) struct ContextDesc {
68     int max_vertices = 0;
69     int max_commands = 0;
70     sg.PixelFormat color_format = sg.PixelFormat.Default;
71     sg.PixelFormat depth_format = sg.PixelFormat.Default;
72     int sample_count = 0;
73 }
74 /++
75 + sgl_allocator_t
76 + 
77 +     Used in sgl_desc_t to provide custom memory-alloc and -free functions
78 +     to sokol_gl.h. If memory management should be overridden, both the
79 +     alloc and free function must be provided (e.g. it's not valid to
80 +     override one function but not the other).
81 +/
82 extern(C) struct Allocator {
83     extern(C) void* function(size_t, void*) alloc_fn = null;
84     extern(C) void function(void*, void*) free_fn = null;
85     void* user_data = null;
86 }
87 extern(C) struct Desc {
88     int max_vertices = 0;
89     int max_commands = 0;
90     int context_pool_size = 0;
91     int pipeline_pool_size = 0;
92     sg.PixelFormat color_format = sg.PixelFormat.Default;
93     sg.PixelFormat depth_format = sg.PixelFormat.Default;
94     int sample_count = 0;
95     sg.FaceWinding face_winding = sg.FaceWinding.Default;
96     Allocator allocator = {};
97     Logger logger = {};
98 }
99 /++
100 + setup/shutdown/misc
101 +/
102 extern(C) void sgl_setup(const Desc* desc) @system @nogc nothrow pure;
103 void setup(scope ref Desc desc) @trusted @nogc nothrow pure {
104     sgl_setup(&desc);
105 }
106 extern(C) void sgl_shutdown() @system @nogc nothrow pure;
107 void shutdown() @trusted @nogc nothrow pure {
108     sgl_shutdown();
109 }
110 extern(C) float sgl_rad(float deg) @system @nogc nothrow pure;
111 float asRadians(float deg) @trusted @nogc nothrow pure {
112     return sgl_rad(deg);
113 }
114 extern(C) float sgl_deg(float rad) @system @nogc nothrow pure;
115 float asDegrees(float rad) @trusted @nogc nothrow pure {
116     return sgl_deg(rad);
117 }
118 extern(C) Error sgl_error() @system @nogc nothrow pure;
119 Error getError() @trusted @nogc nothrow pure {
120     return sgl_error();
121 }
122 extern(C) Error sgl_context_error(Context ctx) @system @nogc nothrow pure;
123 Error contextError(Context ctx) @trusted @nogc nothrow pure {
124     return sgl_context_error(ctx);
125 }
126 /++
127 + context functions
128 +/
129 extern(C) Context sgl_make_context(const ContextDesc* desc) @system @nogc nothrow pure;
130 Context makeContext(scope ref ContextDesc desc) @trusted @nogc nothrow pure {
131     return sgl_make_context(&desc);
132 }
133 extern(C) void sgl_destroy_context(Context ctx) @system @nogc nothrow pure;
134 void destroyContext(Context ctx) @trusted @nogc nothrow pure {
135     sgl_destroy_context(ctx);
136 }
137 extern(C) void sgl_set_context(Context ctx) @system @nogc nothrow pure;
138 void setContext(Context ctx) @trusted @nogc nothrow pure {
139     sgl_set_context(ctx);
140 }
141 extern(C) Context sgl_get_context() @system @nogc nothrow pure;
142 Context getContext() @trusted @nogc nothrow pure {
143     return sgl_get_context();
144 }
145 extern(C) Context sgl_default_context() @system @nogc nothrow pure;
146 Context defaultContext() @trusted @nogc nothrow pure {
147     return sgl_default_context();
148 }
149 /++
150 + get information about recorded vertices and commands in current context
151 +/
152 extern(C) int sgl_num_vertices() @system @nogc nothrow pure;
153 int numVertices() @trusted @nogc nothrow pure {
154     return sgl_num_vertices();
155 }
156 extern(C) int sgl_num_commands() @system @nogc nothrow pure;
157 int numCommands() @trusted @nogc nothrow pure {
158     return sgl_num_commands();
159 }
160 /++
161 + draw recorded commands (call inside a sokol-gfx render pass)
162 +/
163 extern(C) void sgl_draw() @system @nogc nothrow pure;
164 void draw() @trusted @nogc nothrow pure {
165     sgl_draw();
166 }
167 extern(C) void sgl_context_draw(Context ctx) @system @nogc nothrow pure;
168 void contextDraw(Context ctx) @trusted @nogc nothrow pure {
169     sgl_context_draw(ctx);
170 }
171 extern(C) void sgl_draw_layer(int layer_id) @system @nogc nothrow pure;
172 void drawLayer(int layer_id) @trusted @nogc nothrow pure {
173     sgl_draw_layer(layer_id);
174 }
175 extern(C) void sgl_context_draw_layer(Context ctx, int layer_id) @system @nogc nothrow pure;
176 void contextDrawLayer(Context ctx, int layer_id) @trusted @nogc nothrow pure {
177     sgl_context_draw_layer(ctx, layer_id);
178 }
179 /++
180 + create and destroy pipeline objects
181 +/
182 extern(C) Pipeline sgl_make_pipeline(const sg.PipelineDesc* desc) @system @nogc nothrow pure;
183 Pipeline makePipeline(scope ref sg.PipelineDesc desc) @trusted @nogc nothrow pure {
184     return sgl_make_pipeline(&desc);
185 }
186 extern(C) Pipeline sgl_context_make_pipeline(Context ctx, const sg.PipelineDesc* desc) @system @nogc nothrow pure;
187 Pipeline contextMakePipeline(Context ctx, scope ref sg.PipelineDesc desc) @trusted @nogc nothrow pure {
188     return sgl_context_make_pipeline(ctx, &desc);
189 }
190 extern(C) void sgl_destroy_pipeline(Pipeline pip) @system @nogc nothrow pure;
191 void destroyPipeline(Pipeline pip) @trusted @nogc nothrow pure {
192     sgl_destroy_pipeline(pip);
193 }
194 /++
195 + render state functions
196 +/
197 extern(C) void sgl_defaults() @system @nogc nothrow pure;
198 void defaults() @trusted @nogc nothrow pure {
199     sgl_defaults();
200 }
201 extern(C) void sgl_viewport(int x, int y, int w, int h, bool origin_top_left) @system @nogc nothrow pure;
202 void viewport(int x, int y, int w, int h, bool origin_top_left) @trusted @nogc nothrow pure {
203     sgl_viewport(x, y, w, h, origin_top_left);
204 }
205 extern(C) void sgl_viewportf(float x, float y, float w, float h, bool origin_top_left) @system @nogc nothrow pure;
206 void viewportf(float x, float y, float w, float h, bool origin_top_left) @trusted @nogc nothrow pure {
207     sgl_viewportf(x, y, w, h, origin_top_left);
208 }
209 extern(C) void sgl_scissor_rect(int x, int y, int w, int h, bool origin_top_left) @system @nogc nothrow pure;
210 void scissorRect(int x, int y, int w, int h, bool origin_top_left) @trusted @nogc nothrow pure {
211     sgl_scissor_rect(x, y, w, h, origin_top_left);
212 }
213 extern(C) void sgl_scissor_rectf(float x, float y, float w, float h, bool origin_top_left) @system @nogc nothrow pure;
214 void scissorRectf(float x, float y, float w, float h, bool origin_top_left) @trusted @nogc nothrow pure {
215     sgl_scissor_rectf(x, y, w, h, origin_top_left);
216 }
217 extern(C) void sgl_enable_texture() @system @nogc nothrow pure;
218 void enableTexture() @trusted @nogc nothrow pure {
219     sgl_enable_texture();
220 }
221 extern(C) void sgl_disable_texture() @system @nogc nothrow pure;
222 void disableTexture() @trusted @nogc nothrow pure {
223     sgl_disable_texture();
224 }
225 extern(C) void sgl_texture(sg.Image img, sg.Sampler smp) @system @nogc nothrow pure;
226 void texture(sg.Image img, sg.Sampler smp) @trusted @nogc nothrow pure {
227     sgl_texture(img, smp);
228 }
229 extern(C) void sgl_layer(int layer_id) @system @nogc nothrow pure;
230 void layer(int layer_id) @trusted @nogc nothrow pure {
231     sgl_layer(layer_id);
232 }
233 /++
234 + pipeline stack functions
235 +/
236 extern(C) void sgl_load_default_pipeline() @system @nogc nothrow pure;
237 void loadDefaultPipeline() @trusted @nogc nothrow pure {
238     sgl_load_default_pipeline();
239 }
240 extern(C) void sgl_load_pipeline(Pipeline pip) @system @nogc nothrow pure;
241 void loadPipeline(Pipeline pip) @trusted @nogc nothrow pure {
242     sgl_load_pipeline(pip);
243 }
244 extern(C) void sgl_push_pipeline() @system @nogc nothrow pure;
245 void pushPipeline() @trusted @nogc nothrow pure {
246     sgl_push_pipeline();
247 }
248 extern(C) void sgl_pop_pipeline() @system @nogc nothrow pure;
249 void popPipeline() @trusted @nogc nothrow pure {
250     sgl_pop_pipeline();
251 }
252 /++
253 + matrix stack functions
254 +/
255 extern(C) void sgl_matrix_mode_modelview() @system @nogc nothrow pure;
256 void matrixModeModelview() @trusted @nogc nothrow pure {
257     sgl_matrix_mode_modelview();
258 }
259 extern(C) void sgl_matrix_mode_projection() @system @nogc nothrow pure;
260 void matrixModeProjection() @trusted @nogc nothrow pure {
261     sgl_matrix_mode_projection();
262 }
263 extern(C) void sgl_matrix_mode_texture() @system @nogc nothrow pure;
264 void matrixModeTexture() @trusted @nogc nothrow pure {
265     sgl_matrix_mode_texture();
266 }
267 extern(C) void sgl_load_identity() @system @nogc nothrow pure;
268 void loadIdentity() @trusted @nogc nothrow pure {
269     sgl_load_identity();
270 }
271 extern(C) void sgl_load_matrix(const float* m) @system @nogc nothrow pure;
272 void loadMatrix(const float* m) @trusted @nogc nothrow pure {
273     sgl_load_matrix(m);
274 }
275 extern(C) void sgl_load_transpose_matrix(const float* m) @system @nogc nothrow pure;
276 void loadTransposeMatrix(const float* m) @trusted @nogc nothrow pure {
277     sgl_load_transpose_matrix(m);
278 }
279 extern(C) void sgl_mult_matrix(const float* m) @system @nogc nothrow pure;
280 void multMatrix(const float* m) @trusted @nogc nothrow pure {
281     sgl_mult_matrix(m);
282 }
283 extern(C) void sgl_mult_transpose_matrix(const float* m) @system @nogc nothrow pure;
284 void multTransposeMatrix(const float* m) @trusted @nogc nothrow pure {
285     sgl_mult_transpose_matrix(m);
286 }
287 extern(C) void sgl_rotate(float angle_rad, float x, float y, float z) @system @nogc nothrow pure;
288 void rotate(float angle_rad, float x, float y, float z) @trusted @nogc nothrow pure {
289     sgl_rotate(angle_rad, x, y, z);
290 }
291 extern(C) void sgl_scale(float x, float y, float z) @system @nogc nothrow pure;
292 void scale(float x, float y, float z) @trusted @nogc nothrow pure {
293     sgl_scale(x, y, z);
294 }
295 extern(C) void sgl_translate(float x, float y, float z) @system @nogc nothrow pure;
296 void translate(float x, float y, float z) @trusted @nogc nothrow pure {
297     sgl_translate(x, y, z);
298 }
299 extern(C) void sgl_frustum(float l, float r, float b, float t, float n, float f) @system @nogc nothrow pure;
300 void frustum(float l, float r, float b, float t, float n, float f) @trusted @nogc nothrow pure {
301     sgl_frustum(l, r, b, t, n, f);
302 }
303 extern(C) void sgl_ortho(float l, float r, float b, float t, float n, float f) @system @nogc nothrow pure;
304 void ortho(float l, float r, float b, float t, float n, float f) @trusted @nogc nothrow pure {
305     sgl_ortho(l, r, b, t, n, f);
306 }
307 extern(C) void sgl_perspective(float fov_y, float aspect, float z_near, float z_far) @system @nogc nothrow pure;
308 void perspective(float fov_y, float aspect, float z_near, float z_far) @trusted @nogc nothrow pure {
309     sgl_perspective(fov_y, aspect, z_near, z_far);
310 }
311 extern(C) void sgl_lookat(float eye_x, float eye_y, float eye_z, float center_x, float center_y, float center_z, float up_x, float up_y, float up_z) @system @nogc nothrow pure;
312 void lookat(float eye_x, float eye_y, float eye_z, float center_x, float center_y, float center_z, float up_x, float up_y, float up_z) @trusted @nogc nothrow pure {
313     sgl_lookat(eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z);
314 }
315 extern(C) void sgl_push_matrix() @system @nogc nothrow pure;
316 void pushMatrix() @trusted @nogc nothrow pure {
317     sgl_push_matrix();
318 }
319 extern(C) void sgl_pop_matrix() @system @nogc nothrow pure;
320 void popMatrix() @trusted @nogc nothrow pure {
321     sgl_pop_matrix();
322 }
323 /++
324 + these functions only set the internal 'current texcoord / color / point size' (valid inside or outside begin/end)
325 +/
326 extern(C) void sgl_t2f(float u, float v) @system @nogc nothrow pure;
327 void t2f(float u, float v) @trusted @nogc nothrow pure {
328     sgl_t2f(u, v);
329 }
330 extern(C) void sgl_c3f(float r, float g, float b) @system @nogc nothrow pure;
331 void c3f(float r, float g, float b) @trusted @nogc nothrow pure {
332     sgl_c3f(r, g, b);
333 }
334 extern(C) void sgl_c4f(float r, float g, float b, float a) @system @nogc nothrow pure;
335 void c4f(float r, float g, float b, float a) @trusted @nogc nothrow pure {
336     sgl_c4f(r, g, b, a);
337 }
338 extern(C) void sgl_c3b(ubyte r, ubyte g, ubyte b) @system @nogc nothrow pure;
339 void c3b(ubyte r, ubyte g, ubyte b) @trusted @nogc nothrow pure {
340     sgl_c3b(r, g, b);
341 }
342 extern(C) void sgl_c4b(ubyte r, ubyte g, ubyte b, ubyte a) @system @nogc nothrow pure;
343 void c4b(ubyte r, ubyte g, ubyte b, ubyte a) @trusted @nogc nothrow pure {
344     sgl_c4b(r, g, b, a);
345 }
346 extern(C) void sgl_c1i(uint rgba) @system @nogc nothrow pure;
347 void c1i(uint rgba) @trusted @nogc nothrow pure {
348     sgl_c1i(rgba);
349 }
350 extern(C) void sgl_point_size(float s) @system @nogc nothrow pure;
351 void pointSize(float s) @trusted @nogc nothrow pure {
352     sgl_point_size(s);
353 }
354 /++
355 + define primitives, each begin/end is one draw command
356 +/
357 extern(C) void sgl_begin_points() @system @nogc nothrow pure;
358 void beginPoints() @trusted @nogc nothrow pure {
359     sgl_begin_points();
360 }
361 extern(C) void sgl_begin_lines() @system @nogc nothrow pure;
362 void beginLines() @trusted @nogc nothrow pure {
363     sgl_begin_lines();
364 }
365 extern(C) void sgl_begin_line_strip() @system @nogc nothrow pure;
366 void beginLineStrip() @trusted @nogc nothrow pure {
367     sgl_begin_line_strip();
368 }
369 extern(C) void sgl_begin_triangles() @system @nogc nothrow pure;
370 void beginTriangles() @trusted @nogc nothrow pure {
371     sgl_begin_triangles();
372 }
373 extern(C) void sgl_begin_triangle_strip() @system @nogc nothrow pure;
374 void beginTriangleStrip() @trusted @nogc nothrow pure {
375     sgl_begin_triangle_strip();
376 }
377 extern(C) void sgl_begin_quads() @system @nogc nothrow pure;
378 void beginQuads() @trusted @nogc nothrow pure {
379     sgl_begin_quads();
380 }
381 extern(C) void sgl_v2f(float x, float y) @system @nogc nothrow pure;
382 void v2f(float x, float y) @trusted @nogc nothrow pure {
383     sgl_v2f(x, y);
384 }
385 extern(C) void sgl_v3f(float x, float y, float z) @system @nogc nothrow pure;
386 void v3f(float x, float y, float z) @trusted @nogc nothrow pure {
387     sgl_v3f(x, y, z);
388 }
389 extern(C) void sgl_v2f_t2f(float x, float y, float u, float v) @system @nogc nothrow pure;
390 void v2fT2f(float x, float y, float u, float v) @trusted @nogc nothrow pure {
391     sgl_v2f_t2f(x, y, u, v);
392 }
393 extern(C) void sgl_v3f_t2f(float x, float y, float z, float u, float v) @system @nogc nothrow pure;
394 void v3fT2f(float x, float y, float z, float u, float v) @trusted @nogc nothrow pure {
395     sgl_v3f_t2f(x, y, z, u, v);
396 }
397 extern(C) void sgl_v2f_c3f(float x, float y, float r, float g, float b) @system @nogc nothrow pure;
398 void v2fC3f(float x, float y, float r, float g, float b) @trusted @nogc nothrow pure {
399     sgl_v2f_c3f(x, y, r, g, b);
400 }
401 extern(C) void sgl_v2f_c3b(float x, float y, ubyte r, ubyte g, ubyte b) @system @nogc nothrow pure;
402 void v2fC3b(float x, float y, ubyte r, ubyte g, ubyte b) @trusted @nogc nothrow pure {
403     sgl_v2f_c3b(x, y, r, g, b);
404 }
405 extern(C) void sgl_v2f_c4f(float x, float y, float r, float g, float b, float a) @system @nogc nothrow pure;
406 void v2fC4f(float x, float y, float r, float g, float b, float a) @trusted @nogc nothrow pure {
407     sgl_v2f_c4f(x, y, r, g, b, a);
408 }
409 extern(C) void sgl_v2f_c4b(float x, float y, ubyte r, ubyte g, ubyte b, ubyte a) @system @nogc nothrow pure;
410 void v2fC4b(float x, float y, ubyte r, ubyte g, ubyte b, ubyte a) @trusted @nogc nothrow pure {
411     sgl_v2f_c4b(x, y, r, g, b, a);
412 }
413 extern(C) void sgl_v2f_c1i(float x, float y, uint rgba) @system @nogc nothrow pure;
414 void v2fC1i(float x, float y, uint rgba) @trusted @nogc nothrow pure {
415     sgl_v2f_c1i(x, y, rgba);
416 }
417 extern(C) void sgl_v3f_c3f(float x, float y, float z, float r, float g, float b) @system @nogc nothrow pure;
418 void v3fC3f(float x, float y, float z, float r, float g, float b) @trusted @nogc nothrow pure {
419     sgl_v3f_c3f(x, y, z, r, g, b);
420 }
421 extern(C) void sgl_v3f_c3b(float x, float y, float z, ubyte r, ubyte g, ubyte b) @system @nogc nothrow pure;
422 void v3fC3b(float x, float y, float z, ubyte r, ubyte g, ubyte b) @trusted @nogc nothrow pure {
423     sgl_v3f_c3b(x, y, z, r, g, b);
424 }
425 extern(C) void sgl_v3f_c4f(float x, float y, float z, float r, float g, float b, float a) @system @nogc nothrow pure;
426 void v3fC4f(float x, float y, float z, float r, float g, float b, float a) @trusted @nogc nothrow pure {
427     sgl_v3f_c4f(x, y, z, r, g, b, a);
428 }
429 extern(C) void sgl_v3f_c4b(float x, float y, float z, ubyte r, ubyte g, ubyte b, ubyte a) @system @nogc nothrow pure;
430 void v3fC4b(float x, float y, float z, ubyte r, ubyte g, ubyte b, ubyte a) @trusted @nogc nothrow pure {
431     sgl_v3f_c4b(x, y, z, r, g, b, a);
432 }
433 extern(C) void sgl_v3f_c1i(float x, float y, float z, uint rgba) @system @nogc nothrow pure;
434 void v3fC1i(float x, float y, float z, uint rgba) @trusted @nogc nothrow pure {
435     sgl_v3f_c1i(x, y, z, rgba);
436 }
437 extern(C) void sgl_v2f_t2f_c3f(float x, float y, float u, float v, float r, float g, float b) @system @nogc nothrow pure;
438 void v2fT2fC3f(float x, float y, float u, float v, float r, float g, float b) @trusted @nogc nothrow pure {
439     sgl_v2f_t2f_c3f(x, y, u, v, r, g, b);
440 }
441 extern(C) void sgl_v2f_t2f_c3b(float x, float y, float u, float v, ubyte r, ubyte g, ubyte b) @system @nogc nothrow pure;
442 void v2fT2fC3b(float x, float y, float u, float v, ubyte r, ubyte g, ubyte b) @trusted @nogc nothrow pure {
443     sgl_v2f_t2f_c3b(x, y, u, v, r, g, b);
444 }
445 extern(C) void sgl_v2f_t2f_c4f(float x, float y, float u, float v, float r, float g, float b, float a) @system @nogc nothrow pure;
446 void v2fT2fC4f(float x, float y, float u, float v, float r, float g, float b, float a) @trusted @nogc nothrow pure {
447     sgl_v2f_t2f_c4f(x, y, u, v, r, g, b, a);
448 }
449 extern(C) void sgl_v2f_t2f_c4b(float x, float y, float u, float v, ubyte r, ubyte g, ubyte b, ubyte a) @system @nogc nothrow pure;
450 void v2fT2fC4b(float x, float y, float u, float v, ubyte r, ubyte g, ubyte b, ubyte a) @trusted @nogc nothrow pure {
451     sgl_v2f_t2f_c4b(x, y, u, v, r, g, b, a);
452 }
453 extern(C) void sgl_v2f_t2f_c1i(float x, float y, float u, float v, uint rgba) @system @nogc nothrow pure;
454 void v2fT2fC1i(float x, float y, float u, float v, uint rgba) @trusted @nogc nothrow pure {
455     sgl_v2f_t2f_c1i(x, y, u, v, rgba);
456 }
457 extern(C) void sgl_v3f_t2f_c3f(float x, float y, float z, float u, float v, float r, float g, float b) @system @nogc nothrow pure;
458 void v3fT2fC3f(float x, float y, float z, float u, float v, float r, float g, float b) @trusted @nogc nothrow pure {
459     sgl_v3f_t2f_c3f(x, y, z, u, v, r, g, b);
460 }
461 extern(C) void sgl_v3f_t2f_c3b(float x, float y, float z, float u, float v, ubyte r, ubyte g, ubyte b) @system @nogc nothrow pure;
462 void v3fT2fC3b(float x, float y, float z, float u, float v, ubyte r, ubyte g, ubyte b) @trusted @nogc nothrow pure {
463     sgl_v3f_t2f_c3b(x, y, z, u, v, r, g, b);
464 }
465 extern(C) void sgl_v3f_t2f_c4f(float x, float y, float z, float u, float v, float r, float g, float b, float a) @system @nogc nothrow pure;
466 void v3fT2fC4f(float x, float y, float z, float u, float v, float r, float g, float b, float a) @trusted @nogc nothrow pure {
467     sgl_v3f_t2f_c4f(x, y, z, u, v, r, g, b, a);
468 }
469 extern(C) void sgl_v3f_t2f_c4b(float x, float y, float z, float u, float v, ubyte r, ubyte g, ubyte b, ubyte a) @system @nogc nothrow pure;
470 void v3fT2fC4b(float x, float y, float z, float u, float v, ubyte r, ubyte g, ubyte b, ubyte a) @trusted @nogc nothrow pure {
471     sgl_v3f_t2f_c4b(x, y, z, u, v, r, g, b, a);
472 }
473 extern(C) void sgl_v3f_t2f_c1i(float x, float y, float z, float u, float v, uint rgba) @system @nogc nothrow pure;
474 void v3fT2fC1i(float x, float y, float z, float u, float v, uint rgba) @trusted @nogc nothrow pure {
475     sgl_v3f_t2f_c1i(x, y, z, u, v, rgba);
476 }
477 extern(C) void sgl_end() @system @nogc nothrow pure;
478 void end() @trusted @nogc nothrow pure {
479     sgl_end();
480 }