From 94fa998b7e3524ce101a977ed3516fac13461287 Mon Sep 17 00:00:00 2001 From: Phil Jones Date: Mon, 1 Nov 2021 16:06:51 +0000 Subject: Add extra cleanup code to debug builds. Also fix some memory leaks. --- src/gl.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/gl.c') diff --git a/src/gl.c b/src/gl.c index 74e7605..09c542e 100644 --- a/src/gl.c +++ b/src/gl.c @@ -141,6 +141,15 @@ void gl_initialise(struct gl *gl, struct image *texture) glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, gl->ebo); } +void gl_destroy(struct gl *gl) +{ + glDeleteProgram(gl->shader); + glDeleteTextures(1, &gl->texture); + glDeleteBuffers(1, &gl->ebo); + glDeleteVertexArrays(1, &gl->vao); + glDeleteBuffers(1, &gl->vbo); +} + void gl_clear(struct gl *gl, struct color *color) { glClearColor(color->r, color->g, color->b, color->a); @@ -241,6 +250,10 @@ GLuint create_shader_program(const char *vert, const char *frag) glAttachShader(shader, vertex_shader); glAttachShader(shader, fragment_shader); glLinkProgram(shader); + glDetachShader(shader, fragment_shader); + glDetachShader(shader, vertex_shader); + glDeleteShader(fragment_shader); + glDeleteShader(vertex_shader); return shader; } -- cgit v1.2.3