Changeset 100 for trunk/src/gl


Ignore:
Timestamp:
06/03/13 23:21:08 (12 years ago)
Author:
epyon
Message:
  • vertex_buffer - assign changed to update, needs bind
  • gfx/cached_buffer - initial implementation with buffer_slice proxies
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gl/gl_vertex_buffer.cc

    r99 r100  
    1313        : vertex_buffer( hint, size ), m_name()
    1414{
    15         if (data)
    16         {
    17                 assign( data );
    18         }
     15        bind();
     16        glBufferData( GL_ARRAY_BUFFER, m_size, data, buffer_hint_to_enum( m_hint ) );
     17        unbind();
    1918}
    2019
    21 void gl_vertex_buffer::assign( void* data )
     20void gl_vertex_buffer::update( void* data, int offset, int size )
    2221{
    23         glBindBuffer( GL_ARRAY_BUFFER, m_name.get_value() );
    24         glBufferData( GL_ARRAY_BUFFER, m_size, data, buffer_hint_to_enum( m_hint ) );
    25         glBindBuffer( GL_ARRAY_BUFFER, 0);
    26 }
    27 
    28 void gl_vertex_buffer::assign( void* data, int offset, int size )
    29 {
    30         glBindBuffer( GL_ARRAY_BUFFER, m_name.get_value() );
    3122        glBufferSubData( GL_ARRAY_BUFFER, offset, size, data );
    32         glBindBuffer( GL_ARRAY_BUFFER, 0);
    3323}
    3424
     
    5242        : index_buffer( hint, size ), m_name()
    5343{
    54         if (data)
    55         {
    56                 assign( data );
    57         }
     44        bind();
     45        glBufferData( GL_ELEMENT_ARRAY_BUFFER, m_size, data, buffer_hint_to_enum( m_hint ) );
     46        unbind();
    5847}
    5948
    60 void gl_index_buffer::assign( void* data )
     49void gl_index_buffer::update( void* data, int offset, int size )
    6150{
    62         glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, m_name.get_value() );
    63         glBufferData( GL_ELEMENT_ARRAY_BUFFER, m_size, data, buffer_hint_to_enum( m_hint ) );
    64         glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 0);
    65 }
    66 
    67 void gl_index_buffer::assign( void* data, int offset, int size )
    68 {
    69         glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, m_name.get_value() );
    7051        glBufferSubData( GL_ELEMENT_ARRAY_BUFFER, offset, size, data );
    71         glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 0);
    7252}
    7353
Note: See TracChangeset for help on using the changeset viewer.