5namespace acheron::agl {
6 using ClearColorProc = void (*)(
float r,
float g,
float b,
float a);
7 using ClearProc = void (*)(
unsigned int mask);
9 using ViewportProc = void (*)(
int x,
int y,
int w,
int h);
11 using GenVertexArraysProc = void (*)(
int n,
unsigned int* arrays);
12 using BindVertexArrayProc = void (*)(
unsigned int array);
13 using GenBuffersProc = void (*)(
int n,
unsigned int* buffers);
14 using BindBufferProc = void (*)(
int target,
unsigned int buffer);
15 using BufferDataProc = void (*)(
int target,
int size,
const void* data,
int usage);
17 using VertexAttribPointerProc = void (*)(
unsigned int index,
int size,
int type,
bool normalized,
int stride,
const void* pointer);
18 using VertexAttribDivisorProc = void (*)(
unsigned int index,
unsigned int divisor);
19 using EnableVertexAttribArrayProc = void (*)(
unsigned int index);
21 using DrawArraysProc = void (*)(
int mode,
int first,
int count);
22 using DrawElementsProc = void (*)(
int mode,
int count,
int type,
const void* indices);
23 using DrawElementsInstancedProc = void (*)(
int mode,
int count,
int type,
const void* indices,
int instanceCount);
25 using CreateShaderProc =
unsigned int (*)(
int shaderType);
26 using ShaderSourceProc = void (*)(
unsigned int shader,
int count,
const char** string,
int* length);
27 using CompileShaderProc = void (*)(
unsigned int shader);
28 using GetShaderivProc = void (*)(
unsigned int shader,
int pname,
int* params);
29 using GetShaderInfoLogProc = void (*)(
unsigned int shader,
int maxLength,
int* length,
char* log);
30 using CreateProgramProc =
unsigned int (*)();
31 using AttachShaderProc = void (*)(
unsigned int program,
unsigned int shader);
32 using LinkProgramProc = void (*)(
unsigned int program);
33 using GetProgramivProc = void (*)(
unsigned int program,
int pname,
int* params);
34 using GetProgramInfoLogProc = void (*)(
unsigned int program,
int maxLength,
int* length,
char* log);
35 using DeleteShaderProc = void (*)(
unsigned int shader);
36 using UseProgramProc = void (*)(
unsigned int program);
38 using GetUniformLocationProc = int (*)(
unsigned int program,
const char* name);
39 using Uniform4fvProc = void (*)(
unsigned int location,
int count,
const float* value);
40 using UniformMatrix4fvProc = void (*)(
unsigned int location,
int count,
bool transpose,
const float* value);
42 using GetStringProc =
const char* (*)(
int name);
44 inline ClearColorProc aglClearColor =
nullptr;
45 inline ClearProc aglClear =
nullptr;
46 inline ViewportProc aglViewport =
nullptr;
47 inline GenVertexArraysProc aglGenVertexArrays =
nullptr;
48 inline BindVertexArrayProc aglBindVertexArray =
nullptr;
49 inline GenBuffersProc aglGenBuffers =
nullptr;
50 inline BindBufferProc aglBindBuffer =
nullptr;
51 inline BufferDataProc aglBufferData =
nullptr;
53 inline VertexAttribPointerProc aglVertexAttribPointer =
nullptr;
54 inline VertexAttribDivisorProc aglVertexAttribDivisor =
nullptr;
55 inline EnableVertexAttribArrayProc aglEnableVertexAttribArray =
nullptr;
57 inline DrawArraysProc aglDrawArrays =
nullptr;
58 inline DrawElementsProc aglDrawElements =
nullptr;
59 inline DrawElementsInstancedProc aglDrawElementsInstanced =
nullptr;
61 inline CreateShaderProc aglCreateShader =
nullptr;
62 inline ShaderSourceProc aglShaderSource =
nullptr;
63 inline CompileShaderProc aglCompileShader =
nullptr;
64 inline GetShaderivProc aglGetShaderiv =
nullptr;
65 inline GetShaderInfoLogProc aglGetShaderInfoLog =
nullptr;
66 inline CreateProgramProc aglCreateProgram =
nullptr;
67 inline AttachShaderProc aglAttachShader =
nullptr;
68 inline LinkProgramProc aglLinkProgram =
nullptr;
69 inline GetProgramivProc aglGetProgramiv =
nullptr;
70 inline GetProgramInfoLogProc aglGetProgramInfoLog =
nullptr;
71 inline DeleteShaderProc aglDeleteShader =
nullptr;
72 inline UseProgramProc aglUseProgram =
nullptr;
74 inline GetUniformLocationProc aglGetUniformLocation =
nullptr;
75 inline Uniform4fvProc aglUniform4fv =
nullptr;
76 inline UniformMatrix4fvProc aglUniformMatrix4fv =
nullptr;
78 inline GetStringProc aglGetString =
nullptr;