summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoraura <nw@moneybot.cc>2026-07-26 04:21:25 +0200
committeraura <nw@moneybot.cc>2026-07-26 04:21:25 +0200
commit452e3619450ab9e7d22886445f61cc90272e4d60 (patch)
treed2d1b3e3e5310f883d57d8acdc6b6f171d05d62d /src
parent5f2c7110a1880fde47317cb920db978d6995638f (diff)
cleanup
Diffstat (limited to 'src')
-rw-r--r--src/game.cpp1
-rw-r--r--src/render/gl.cpp13
2 files changed, 9 insertions, 5 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 8497b6a..523e884 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -226,5 +226,6 @@ void game_on_tick( GAME_DATA* game ) { _profiled
void game_destroy( GAME_DATA *game ) {
gl_batch_destroy( game->render.batch_2d );
gl_batch_destroy( game->render.batch_3d );
+ gl_destroy( game->gl );
free( game );
}
diff --git a/src/render/gl.cpp b/src/render/gl.cpp
index 44d5079..6ab2117 100644
--- a/src/render/gl.cpp
+++ b/src/render/gl.cpp
@@ -250,7 +250,8 @@ void gl_destroy( GL_DATA *gl ) {
if( gl->window )
SDL_DestroyWindow( gl->window );
- free( gl );
+ SDL_Quit();
+ delete gl;
}
void gl_update_window( GL_DATA* gl, I32* size ) {
@@ -305,7 +306,9 @@ STAT gl_shader_compile( GL_DATA* gl, GL_SHADER_DEF* shader ) {
return STAT_OK;
}
-void gl_shader_destroy( GL_DATA* gl, GL_SHADER_DEF* shader ) {}
+void gl_shader_destroy( GL_DATA* gl, GL_SHADER_DEF* shader ) {
+ shader->code.~STR();
+}
GL_SHADER_PROGRAM* gl_program_create( GL_DATA* gl, const char* name, U32 size ) {
GL_SHADER_PROGRAM* program = (GL_SHADER_PROGRAM*)malloc( size );
@@ -324,6 +327,7 @@ GL_SHADER_PROGRAM* gl_program_create( GL_DATA* gl, const char* name, U32 size )
program->vsh.type = GL_VERTEX_SHADER;
program->vsh.code = shader_code;
+ free( shader_code );
sprintf( shader_string, "../assets/shaders/%s.fsh", name );
shader_code = (char*)file_read( shader_string );
if( !shader_code ) {
@@ -334,6 +338,7 @@ GL_SHADER_PROGRAM* gl_program_create( GL_DATA* gl, const char* name, U32 size )
program->fsh.name = name;
program->fsh.type = GL_FRAGMENT_SHADER;
program->fsh.code = shader_code;
+ free( shader_code );
program->name = name;
program->gl = gl;
@@ -402,9 +407,7 @@ void gl_program_destroy( GL_DATA* gl, GL_SHADER_PROGRAM* program ) {
if( program->vsh.compiled )
gl_shader_destroy( gl, &program->vsh );
- I32 idx = gl->programs.idx_of( program );
- if( idx != -1 )
- gl->programs.erase( idx );
+ free( program );
}
GL_TEX2D* gl_texture_from_file( GL_DATA* gl, const char* name ) {