framebuffer delete
authorhgn <hgodden00@gmail.com>
Thu, 20 Mar 2025 03:31:22 +0000 (03:31 +0000)
committerhgn <hgodden00@gmail.com>
Thu, 20 Mar 2025 03:31:22 +0000 (03:31 +0000)
vg_framebuffer.c
vg_framebuffer.h

index d227c7c68e880d9c69f0646dd8813929bcdc5198..2f4a68fb2deecddacd9d0a8397fbd8adc5c1af1e 100644 (file)
@@ -334,6 +334,29 @@ void vg_framebuffer_create( vg_framebuffer *fb )
    vg_async_call( async_framebuffer_create, fb, 0 );
 }
 
+void vg_framebuffer_free( vg_framebuffer *fb )
+{
+   glDeleteFramebuffers( 1, &fb->id );
+
+   for( u32 j=0; j<fb->attachment_count; j++ )
+   {
+      vg_framebuffer_attachment *attachment = &fb->attachments[j];
+
+      if( attachment->purpose == k_framebuffer_attachment_type_none )
+         continue;
+
+      if( attachment->purpose == k_framebuffer_attachment_type_renderbuffer )
+      {
+         glDeleteRenderbuffers( 1, &attachment->id );
+      }
+      else if( attachment->purpose == k_framebuffer_attachment_type_texture || 
+               attachment->purpose == k_framebuffer_attachment_type_texture_depth )
+      {
+         glDeleteTextures( 1, &attachment->id );
+      }
+   }
+}
+
 void vg_framebuffer_ui( ui_context *ctx )
 {
    ui_px w = vg.window_x/3,
index 8bf177dada7212f0ddbf73d7dd604191e5185501..788c01105dc8e19f54db9472578f21e50651478a 100644 (file)
@@ -92,7 +92,8 @@ vg_framebuffer *vg_framebuffer_allocate( void *alloc, u32 attachment_count, bool
 /*
  * Allocate graphics memory and initialize 
  */
-void vg_framebuffer_create( vg_framebuffer *fb );
+void vg_framebuffer_create( vg_framebuffer *fb ); /* LOADER THREAD */
+void vg_framebuffer_free( vg_framebuffer *fb );
 
 /*
  * Draw framebuffer debugging stuff