Changeset 469 for trunk/nv/interface/context.hh
- Timestamp:
- 09/17/15 17:17:20 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nv/interface/context.hh
r463 r469 125 125 126 126 template < typename VTX, slot SLOT > 127 void add_vertex_buffer_impl( vertex_array, buffer, const false_type& )127 void add_vertex_buffer_impl( vertex_array, buffer, bool, const false_type& ) 128 128 { 129 129 } 130 130 131 131 template < typename VTX, slot SLOT > 132 void add_vertex_buffer_impl( vertex_array va, buffer vb, const true_type& )132 void add_vertex_buffer_impl( vertex_array va, buffer vb, bool owned, const true_type& ) 133 133 { 134 134 typedef slot_info< VTX, SLOT > vinfo; 135 135 typedef datatype_traits< typename vinfo::value_type > dt_traits; 136 add_vertex_buffer( va, SLOT, vb, type_to_enum< typename dt_traits::base_type >::type, dt_traits::size, vinfo::offset, sizeof( VTX ), false);136 add_vertex_buffer( va, SLOT, vb, type_to_enum< typename dt_traits::base_type >::type, dt_traits::size, vinfo::offset, sizeof( VTX ), owned ); 137 137 } 138 138 139 139 template < typename VTX, slot SLOT > 140 void add_vertex_buffer( vertex_array va, buffer vb )141 { 142 add_vertex_buffer_impl< VTX, SLOT >( va, vb, has_slot< VTX, SLOT >() );140 void add_vertex_buffer( vertex_array va, buffer vb, bool owned ) 141 { 142 add_vertex_buffer_impl< VTX, SLOT >( va, vb, owned, has_slot< VTX, SLOT >() ); 143 143 } 144 144 145 145 template < typename VTX > 146 void add_vertex_buffers( vertex_array va, buffer vb )147 { 148 add_vertex_buffer< VTX, slot::POSITION > ( va, vb );149 add_vertex_buffer< VTX, slot::TEXCOORD > ( va, vb );150 add_vertex_buffer< VTX, slot::NORMAL > ( va, vb );151 add_vertex_buffer< VTX, slot::TANGENT > ( va, vb );152 add_vertex_buffer< VTX, slot::BONEINDEX > ( va, vb );153 add_vertex_buffer< VTX, slot::BONEWEIGHT >( va, vb );154 add_vertex_buffer< VTX, slot::COLOR > ( va, vb );146 void add_vertex_buffers( vertex_array va, buffer vb, bool owned ) 147 { 148 add_vertex_buffer< VTX, slot::POSITION > ( va, vb, owned ); 149 add_vertex_buffer< VTX, slot::TEXCOORD > ( va, vb, owned ); 150 add_vertex_buffer< VTX, slot::NORMAL > ( va, vb, owned ); 151 add_vertex_buffer< VTX, slot::TANGENT > ( va, vb, owned ); 152 add_vertex_buffer< VTX, slot::BONEINDEX > ( va, vb, owned ); 153 add_vertex_buffer< VTX, slot::BONEWEIGHT >( va, vb, owned ); 154 add_vertex_buffer< VTX, slot::COLOR > ( va, vb, owned ); 155 155 } 156 156 … … 182 182 vertex_array create_vertex_array( const VTX* v, size_t count, buffer_hint hint ) 183 183 { 184 // TODO: vb will not be owned or freed!185 184 vertex_array va = create_vertex_array(); 186 185 buffer vb = m_device->create_buffer( VERTEX_BUFFER, hint, count * sizeof( VTX ), v ); 187 add_vertex_buffers< VTX >( va, vb );186 add_vertex_buffers< VTX >( va, vb, true ); 188 187 return va; 189 188 }
Note: See TracChangeset
for help on using the changeset viewer.