Changeset 101
- Timestamp:
- 06/04/13 02:51:08 (12 years ago)
- Location:
- trunk/nv
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nv/gfx/cached_buffer.hh
r100 r101 84 84 { 85 85 const vector& bv = bslice->data(); 86 bslice .m_offset = m_data.size();86 bslice->m_offset = m_data.size(); 87 87 m_data.insert( m_data.end(), bv.cbegin(), bv.cend() ); 88 88 } 89 else if ( bslice .m_locked )89 else if ( bslice->m_locked ) 90 90 { 91 91 const vector& bv = bslice->data(); 92 92 std::copy( bv.cbegin(), bv.cend(), m_data.begin() + bslice->m_offset ); 93 m_min = glm::min ( m_min, bslice->m_offset );94 m_max = glm::max ( m_max, bslice->m_offset + bv.size() );93 m_min = glm::min<int>( m_min, bslice->m_offset ); 94 m_max = glm::max<int>( m_max, bslice->m_offset + bv.size() ); 95 95 } 96 96 } … … 106 106 void commit() 107 107 { 108 int bsize =get_max_size();108 size_t bsize = (size_t)get_max_size(); 109 109 if ( m_data.size() > bsize ) 110 110 { -
trunk/nv/interface/device.hh
r92 r101 41 41 { 42 42 vertex_array* result = create_vertex_array(); 43 for ( auto attr : m->get_attributes() )43 for ( auto& attr : m->get_attributes() ) 44 44 { 45 45 // TODO : error checking … … 51 51 const vertex_attribute_base* i = m->get_indices(); 52 52 index_buffer* vb = create_index_buffer( hint, i->get_size(), i->get_data() ); 53 result->set_index_buffer( vb );53 result->set_index_buffer( vb, true ); 54 54 } 55 55 return result; -
trunk/nv/interface/mesh.hh
r73 r101 80 80 { 81 81 if ( m_indices ) delete m_indices; // error? 82 m_indices = new vertex_attribute<T>( attr);82 m_indices = new vertex_attribute<T>(""); 83 83 return m_indices; 84 84 } … … 117 117 { 118 118 delete m_indices; 119 for ( auto v : m_map )119 for ( auto& v : m_map ) 120 120 { 121 121 delete v.second; -
trunk/nv/interface/vertex_buffer.hh
r100 r101 20 20 namespace nv 21 21 { 22 class vertex_array; 22 23 23 24 enum buffer_hint … … 62 63 63 64 vertex_buffer* get_buffer() const { return m_buffer; } 65 void set_buffer( vertex_buffer* b, bool owner ) { if (m_owner) delete m_buffer; m_buffer = b; m_owner = owner; } 64 66 datatype get_datatype() const { return m_datatype; } 65 67 int get_components() const { return m_components; } … … 75 77 } 76 78 protected: 79 friend class vertex_array; 80 77 81 vertex_buffer* m_buffer; 78 82 datatype m_datatype; … … 91 95 void add_vertex_buffer( int location, vertex_buffer* buffer, datatype datatype, int components, int offset = 0, int stride = 0, bool owner = true ) 92 96 { 93 m_map[ location ] = new vertex_buffer_attribute( buffer, datatype, components, offset, stride, owner ); 97 auto p = new vertex_buffer_attribute( buffer, datatype, components, offset, stride, owner ); 98 m_map[ location ] = p; 94 99 }; 95 void set_index_buffer( index_buffer* buffer ) { m_index = buffer; } 100 void update_vertex_buffer( int location, vertex_buffer* b, bool owner ) 101 { 102 auto i = m_map.find( location ); 103 if ( i != m_map.end() ) 104 { 105 i->second->set_buffer( b, owner ); 106 } 107 }; 108 void set_index_buffer( index_buffer* buffer, bool owner ) 109 { 110 m_index = buffer; 111 m_index_owner = owner; 112 } 96 113 virtual void bind() = 0; 97 114 virtual void unbind() = 0; … … 101 118 delete i->second; 102 119 } 103 if (m_index ) delete m_index;120 if (m_index && m_index_owner) delete m_index; 104 121 } 105 122 protected: 106 123 vertex_buffer_attribute_map m_map; 107 124 index_buffer* m_index; 125 bool m_index_owner; 108 126 }; 109 127
Note: See TracChangeset
for help on using the changeset viewer.