Acheron
Loading...
Searching...
No Matches
func.hpp
1#pragma once
2
3#include <cstddef>
4
5namespace acheron::agl {
6 using ClearColorProc = void (*)(float r, float g, float b, float a);
7 using ClearProc = void (*)(unsigned int mask);
8
9 using ViewportProc = void (*)(int x, int y, int w, int h);
10
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);
16
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);
20
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);
24
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);
37
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);
41
42 using GetStringProc = const char* (*)(int name);
43
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;
52
53 inline VertexAttribPointerProc aglVertexAttribPointer = nullptr;
54 inline VertexAttribDivisorProc aglVertexAttribDivisor = nullptr;
55 inline EnableVertexAttribArrayProc aglEnableVertexAttribArray = nullptr;
56
57 inline DrawArraysProc aglDrawArrays = nullptr;
58 inline DrawElementsProc aglDrawElements = nullptr;
59 inline DrawElementsInstancedProc aglDrawElementsInstanced = nullptr;
60
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;
73
74 inline GetUniformLocationProc aglGetUniformLocation = nullptr;
75 inline Uniform4fvProc aglUniform4fv = nullptr;
76 inline UniformMatrix4fvProc aglUniformMatrix4fv = nullptr;
77
78 inline GetStringProc aglGetString = nullptr;
79}