Changeset 417 for trunk/src/gfx/keyframed_mesh.cc
- Timestamp:
- 07/10/15 19:50:47 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gfx/keyframed_mesh.cc
r416 r417 23 23 , m_active( false ) 24 24 { 25 m_index_count = m_mesh_data->get_channel( slot::INDEX )->size(); 26 m_vertex_count = m_mesh_data->get_channel<vertex_t>()->size(); 27 m_vchannel = m_mesh_data->get_channel<vertex_pnt>(); 28 m_vsize = sizeof( vertex_pnt ); 29 m_has_tangent = true; 30 if ( m_vchannel == nullptr ) 31 { 32 m_vchannel = m_mesh_data->get_channel<vertex_pn>(); 33 m_has_tangent = false; 34 m_vsize = sizeof( vertex_pn ); 35 } 36 m_frame_count = m_vchannel->size() / m_vertex_count; 25 m_index_count = m_mesh_data->get_channel_size( slot::INDEX ); 26 m_vertex_count = m_mesh_data->get_channel_size<vertex_t>(); 27 uint32 pos_size = m_mesh_data->get_channel_size<vertex_pnt>(); 28 if ( pos_size == 0 ) 29 { 30 pos_size = m_mesh_data->get_channel_size<vertex_pn>(); 31 m_has_tangent = false; 32 m_vsize = sizeof( vertex_pn ); 33 } 34 else 35 { 36 m_has_tangent = true; 37 m_vsize = sizeof( vertex_pnt ); 38 } 39 m_frame_count = pos_size / m_vertex_count; 37 40 m_pbuffer = buffer(); 38 41 } … … 47 50 if ( !m_tag_map ) return transform(); 48 51 NV_ASSERT( node_id < m_tag_map->get_count(), "TAGMAP FAIL" ); 49 const key_ data* data = m_tag_map->get_node( node_id )->data;52 const key_channel_set* data = m_tag_map->get_node( node_id )->data; 50 53 NV_ASSERT( data, "TAG FAIL" ); 51 54 transform last = data->get_raw_transform( m_last_frame ); … … 183 186 : keyframed_mesh( a_context, a_data, a_tag_map ) 184 187 { 188 const raw_data_channel* vchannel = m_has_tangent ? a_data->get_channel< vertex_pnt >() : a_data->get_channel< vertex_pn >(); 185 189 m_va = m_context->create_vertex_array(); 186 m_pbuffer = m_context->get_device()->create_buffer( VERTEX_BUFFER, STATIC_DRAW, m_vertex_count * m_vsize, m_vchannel->raw_data() );187 m_context->add_vertex_buffers( m_va, m_pbuffer, m_vchannel);190 m_pbuffer = m_context->get_device()->create_buffer( VERTEX_BUFFER, STATIC_DRAW, m_vertex_count * m_vsize, vchannel->raw_data() ); 191 m_context->add_vertex_buffers( m_va, m_pbuffer, vchannel->descriptor() ); 188 192 189 193 buffer vb = m_context->get_device()->create_buffer( VERTEX_BUFFER, STATIC_DRAW, m_vertex_count * sizeof( vec2 ), m_mesh_data->get_channel_data<vertex_t>() ); 190 m_context->add_vertex_buffers( m_va, vb, m_mesh_data->get_channel<vertex_t>() );194 m_context->add_vertex_buffers( m_va, vb, m_mesh_data->get_channel<vertex_t>()->descriptor() ); 191 195 192 196 const raw_data_channel* index_channel = m_mesh_data->get_channel( slot::INDEX );
Note: See TracChangeset
for help on using the changeset viewer.