diff options
| author | onelin <oscar@nelin.dk> | 2025-11-13 08:48:56 +0000 |
|---|---|---|
| committer | onelin <oscar@nelin.dk> | 2025-11-13 08:51:52 +0000 |
| commit | a4c67096a3afd74ec9ceff9260cff9ad0336b208 (patch) | |
| tree | c230dd2592433c7bbf6587fd81f4b52c649ec484 /src/gl.c | |
| parent | f175d64cc00f9d08f8c02bcbf8287c3e21430611 (diff) | |
Use Direct State Access
DSA (Direct State Access) is apparently a more modern way of using
OpenGL, since version 4.5.
Diffstat (limited to 'src/gl.c')
| -rw-r--r-- | src/gl.c | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -191,7 +191,7 @@ void shaders_delete(Shader* shader, usize shader_len) { GLenum ShaderBuffer_get_gl_access(u64 flags) { const ShaderBufferFlag access = ShaderBuffer_get_access_type(flags); - switch(flags & 0b111) { + switch(flags & 7) { // Stored in the first 3 bits case ShaderBuffer_AccessFrequency_stream: switch(access) { case ShaderBuffer_AccessType_draw: return GL_STREAM_DRAW; @@ -225,18 +225,16 @@ RenderObject RenderObject_new( GladGLContext *gl = GLOBAL_PLATFORM->window->context; RenderObject o; - gl->GenVertexArrays(1, &(o.vao)); + gl->CreateVertexArrays(1, &(o.vao)); gl->BindVertexArray(o.vao); /* For each buffer in the shader, */ /* The shader should be generalied, */ for (usize i = 0; i < num_buffers; i++) { const usize sz = buffers[i].size_elem * buffers[i].count; - const u32 b_gl_type = ShaderBuffer_get_gl_type(buffers[i].buffertype); - gl->GenBuffers(1, &(buffers[i].buffername)); - gl->BindBuffer(b_gl_type, buffers[i].buffername); - gl->BufferData(b_gl_type, (isize)sz, buffers[i].data, ShaderBuffer_get_gl_accesstype(buffers[i].buffertype)); + gl->CreateBuffers(1, &(buffers[i].buffername)); + gl->NamedBufferData(buffers[i].buffername, (isize)sz, buffers[i].data, ShaderBuffer_get_gl_accesstype(buffers[i].buffertype)); } o.shader = *shader; |
