Skip to content

Commit

Permalink
#43 Move GL cleanup from Drop to unload
Browse files Browse the repository at this point in the history
  • Loading branch information
jeaye committed Sep 22, 2013
1 parent 3c7b151 commit 9459fb2
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 22 deletions.
18 changes: 7 additions & 11 deletions src/state/game/bsp_renderer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,13 @@ impl State for BSP_Renderer
}

fn unload(&mut self)
{ log_debug!("Unloading bsp renderer state."); }
{
log_debug!("Unloading bsp renderer state.");

/* Cleanup GL. */
check!(gl2::delete_vertex_arrays(&[self.vao]));
check!(gl2::delete_buffers(&[self.vbo]));
}

fn get_key(&self) -> &str
{ &"bsp_renderer" }
Expand Down Expand Up @@ -156,13 +162,3 @@ impl State for BSP_Renderer
{ (self.game_renderer.camera as @mut ui::Input_Listener).mouse_moved(x, y) }
}

#[unsafe_destructor]
impl Drop for BSP_Renderer
{
fn drop(&mut self)
{
check!(gl2::delete_vertex_arrays(&[self.vao]));
check!(gl2::delete_buffers(&[self.vbo]));
}
}

1 change: 1 addition & 0 deletions src/state/game/game_renderer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ impl State for Game_Renderer
fn unload(&mut self)
{
log_debug!("Unloading game renderer state");

(self.map_renderer as @mut State).unload();
}

Expand Down
16 changes: 5 additions & 11 deletions src/state/game/map_renderer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,11 @@ impl State for Map_Renderer
let (states, visible_voxels) = self.map_stream.recv();
self.map.states = Some(states);
self.visible_voxels = Some(visible_voxels);

/* Cleanup GL. */
check!(gl2::delete_vertex_arrays(&[self.vao]));
check!(gl2::delete_buffers(&[self.vox_vbo, self.offset_tex_vbo,
self.ibos[0], self.ibos[1]]));
}

fn get_key(&self) -> &str
Expand Down Expand Up @@ -353,14 +358,3 @@ impl State for Map_Renderer
}
}

#[unsafe_destructor]
impl Drop for Map_Renderer
{
fn drop(&mut self)
{
check!(gl2::delete_vertex_arrays(&[self.vao]));
check!(gl2::delete_buffers(&[self.vox_vbo, self.offset_tex_vbo,
self.ibos[0], self.ibos[1]]));
}
}

0 comments on commit 9459fb2

Please sign in to comment.