Ignore:
Timestamp:
08/07/14 12:11:16 (11 years ago)
Author:
epyon
Message:
  • textures are now handled by lightweight handles
  • textures now need to be manually released via context
  • removed all old texture2d functionality
  • unreleased textures will be auto-released
  • textures are properly tracked via entity system
  • detailed stats and checking now possible
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gui/gui_renderer.cc

    r299 r301  
    6565{
    6666public:
    67         screen_render_data( context* ctx, size_t initial_size )
    68                 : buffer( ctx, nv::DYNAMIC_DRAW, initial_size ), varray( nullptr ), shader(nullptr), texture(nullptr)
     67        screen_render_data( context* actx, size_t initial_size )
     68                : buffer( actx, nv::DYNAMIC_DRAW, initial_size ), varray( nullptr ), shader(nullptr)
    6969        {
    7070
     
    7474                delete shader;
    7575                delete varray;
    76                 delete texture;
    7776        }
    7877
    7978        nv::sliced_buffer<gui_quad> buffer;
     79        nv::texture       tex;
    8080        nv::vertex_array* varray;
    8181        nv::program*      shader;
    82         nv::texture2d*    texture;
    8382};
    8483
     
    121120
    122121        nv::sampler sampler( nv::sampler::LINEAR, nv::sampler::CLAMP_TO_EDGE );
    123         sr->texture = m_window->get_device()->create_texture2d( m_atlas.get_size(), nv::RGBA, nv::UBYTE, sampler, nullptr );
     122        sr->tex = m_window->get_device()->create_texture( m_atlas.get_size(), image_format( nv::RGBA, nv::UBYTE ), sampler, nullptr );
    124123
    125124        m_render_state.depth_test.enabled = false;
     
    262261        if ( m_reupload )
    263262        {
    264                 m_context->update( sr->texture, (void*)m_atlas.get_data() );
     263                m_context->update( sr->tex, (void*)m_atlas.get_data() );
    265264                m_reupload = false;
    266265        }
     
    273272                sr->varray->update_vertex_buffer( nv::slot::COLOR,    vb, false );
    274273        }
    275         m_context->bind( sr->texture, TEX_DIFFUSE );
     274        m_context->bind( sr->tex, TEX_DIFFUSE );
    276275        m_context->draw( TRIANGLES, m_render_state, m_scene_state, sr->shader, sr->varray, sr->buffer.get_size() * 6 );
    277276}
     
    283282                delete p;
    284283        }
    285         delete m_render_data;
    286 }
     284        if ( m_render_data )
     285        {
     286                m_context->get_device()->release_texture( ((screen_render_data*)m_render_data)->tex );
     287                delete m_render_data;
     288        }
     289}
Note: See TracChangeset for help on using the changeset viewer.