Changeset 543 for trunk/src/gl/gl_context.cc
- Timestamp:
- 02/06/17 21:13:58 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gl/gl_context.cc
r535 r543 97 97 void nv::gl_context::release( vertex_array va ) 98 98 { 99 gl_vertex_array_info* info = m_vertex_arrays.get( va ); 99 if ( gl_vertex_array_info* info = m_vertex_arrays.get( va ) ) 100 { 101 release( info ); 102 m_vertex_arrays.destroy( va ); 103 } 104 } 105 106 void nv::gl_context::release( gl_vertex_array_info* info ) 107 { 100 108 if ( info ) 101 109 { 102 110 for ( uint32 i = 0; i < info->count; ++i ) 103 111 { 104 if ( info->attr[i].owner ) 112 if ( info->attr[i].owner ) 105 113 release( info->attr[i].vbuffer ); 106 114 } 107 if ( info->index.is_valid() && info->index_owner ) release( info->index );115 if ( info->index.is_valid() && info->index_owner ) release( info->index ); 108 116 glDeleteVertexArrays( 1, &info->glid ); 109 m_vertex_arrays.destroy( va );110 117 } 111 118 } … … 113 120 void nv::gl_context::release( framebuffer f ) 114 121 { 115 gl_framebuffer_info* info = m_framebuffers.get( f ); 122 if ( gl_framebuffer_info* info = m_framebuffers.get( f ) ) 123 { 124 release( info ); 125 m_framebuffers.destroy( f ); 126 } 127 } 128 129 void nv::gl_context::release( gl_framebuffer_info* info ) 130 { 116 131 if ( info ) 117 132 { … … 122 137 glDeleteRenderbuffers( 1, &info->depth_rb_glid ); 123 138 glDeleteFramebuffers( 1, &info->glid ); 124 m_framebuffers.destroy( f );125 139 } 126 140 } … … 881 895 nv::gl_context::~gl_context() 882 896 { 883 while ( m_framebuffers.size() > 0)884 release( m_framebuffers.get_handle(0));885 while ( m_vertex_arrays.size() > 0)886 release( m_vertex_arrays.get_handle(0));897 for ( auto& info : m_framebuffers ) 898 release( &info ); 899 for ( auto& info : m_vertex_arrays ) 900 release( &info ); 887 901 } 888 902
Note: See TracChangeset
for help on using the changeset viewer.