Ignore:
Timestamp:
07/09/15 12:19:30 (10 years ago)
Author:
epyon
Message:
  • mesh_raw_channel and key_raw_channel merged into raw_data_channel
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gfx/mesh_creator.cc

    r410 r411  
    1919                key_data* keys   = m_data->m_nodes[i].data;
    2020                key_data* pkeys  = ( parent_id != -1 ? m_data->m_nodes[parent_id].data : nullptr );
    21                 size_t count     = ( keys ? keys->get_channel(0)->count : 0 );
    22                 size_t pcount    = ( pkeys ? pkeys->get_channel(0)->count : 0 );
     21                size_t count     = ( keys ? keys->get_channel(0)->element_count() : 0 );
     22                size_t pcount    = ( pkeys ? pkeys->get_channel(0)->element_count() : 0 );
    2323                max_frames = nv::max<uint32>( count, max_frames );
    2424                if ( pkeys && pkeys->get_channel_count() > 0 && keys && keys->get_channel_count() > 0 )
     
    6666                        }
    6767
    68                         key_raw_channel* raw_channel = key_raw_channel::create<nv_key_transform>( max_keys );
     68                        raw_data_channel* raw_channel = raw_data_channel::create<nv_key_transform>( max_keys );
    6969                        key_data* new_keys = new key_data;
    7070                        new_keys->add_channel( raw_channel );
     
    8080                                {
    8181                                        size_t idx = nv::min( old_keys->get_channel(c)->count - 1, n );
    82                                         pkey += old_keys->get_channel(c)->get_raw( idx, pkey );
     82                                        pkey += old_keys->get_raw( old_keys->get_channel(c), idx, pkey );
    8383                                }
    8484                                channel[n].tform = extract_transform_raw( final_key, key );
     
    106106                        for ( size_t c = 0; c < kdata->get_channel_count(); ++c )
    107107                        {
    108                                 const key_raw_channel* channel = kdata->get_channel(c);
     108                                const raw_data_channel* channel = kdata->get_channel(c);
    109109                                size_t key_size = channel->desc.element_size();
    110110                                for ( size_t n = 0; n < channel->count; ++n )
     
    125125        for ( uint32 c = 0; c < m_data->get_channel_count(); ++c )
    126126        {
    127                 const mesh_raw_channel* channel = m_data->get_channel(c);
     127                const raw_data_channel* channel = m_data->get_channel(c);
    128128                const data_descriptor&  desc    = channel->desc;
    129129                uint8* raw_data = channel->data;
     
    173173        size_t n_offset = 0;
    174174        if ( ch_n == -1 ) return;
    175         mesh_raw_channel* channel = m_data->m_channels[ unsigned( ch_n ) ];
     175        raw_data_channel* channel = m_data->m_channels[ unsigned( ch_n ) ];
    176176        for ( const auto& cslot : channel->desc )
    177177                if ( cslot.vslot == slot::NORMAL )
     
    196196        uint32 n_channel_index = 0;
    197197
    198         const mesh_raw_channel* p_channel = nullptr;
    199               mesh_raw_channel* n_channel = nullptr;
    200         const mesh_raw_channel* t_channel = nullptr;
    201         const mesh_raw_channel* i_channel = nullptr;
     198        const raw_data_channel* p_channel = nullptr;
     199              raw_data_channel* n_channel = nullptr;
     200        const raw_data_channel* t_channel = nullptr;
     201        const raw_data_channel* i_channel = nullptr;
    202202
    203203        for ( uint32 c = 0; c < m_data->get_channel_count(); ++c )
    204204        {
    205                 const mesh_raw_channel* channel = m_data->get_channel(c);
     205                const raw_data_channel* channel = m_data->get_channel(c);
    206206
    207207                for ( const auto& cslot : channel->desc )
     
    247247        }
    248248
    249         mesh_raw_channel* g_channel = mesh_raw_channel::create<vertex_g>( p_channel->count );
     249        raw_data_channel* g_channel = raw_data_channel::create<vertex_g>( p_channel->count );
    250250        vec4* tangents              = reinterpret_cast<vec4*>( g_channel->data );
    251251        vec3* tangents2             = new vec3[ p_channel->count ];
     
    334334}
    335335
    336 nv::mesh_raw_channel* nv::mesh_data_creator::merge_channels( mesh_raw_channel* a, mesh_raw_channel* b )
     336nv::raw_data_channel* nv::mesh_data_creator::merge_channels( raw_data_channel* a, raw_data_channel* b )
    337337{
    338338        NV_ASSERT( a->count == b->count, "merge_channel - bad channels!" );
     
    352352                raw_copy_n( b->data + i * bdesc.element_size(), bdesc.element_size(), data + i*desc.element_size() + adesc.element_size() );
    353353        }
    354         mesh_raw_channel* result = new mesh_raw_channel;
     354        raw_data_channel* result = new raw_data_channel;
    355355        result->count = count;
    356356        result->desc  = desc;
     
    359359}
    360360
    361 nv::mesh_raw_channel* nv::mesh_data_creator::append_channels( mesh_raw_channel* a, mesh_raw_channel* b, uint32 frame_count )
     361nv::raw_data_channel* nv::mesh_data_creator::append_channels( raw_data_channel* a, raw_data_channel* b, uint32 frame_count )
    362362{
    363363        if ( a->desc != b->desc ) return nullptr;
     
    391391        }
    392392
    393         mesh_raw_channel* result = new mesh_raw_channel;
    394         result->count = a->count + b->count;
    395         result->desc  = a->desc;
     393        raw_data_channel* result = new raw_data_channel;
     394        result->count = a->element_count() + b->element_count();
     395        result->desc  = a->descriptor();
    396396        result->data  = data;
    397397        return result;
     
    405405        for ( uint32 c = 0; c < m_data->get_channel_count(); ++c )
    406406        {
    407                 if ( m_data->get_channel(c)->desc != other->get_channel(c)->desc )
     407                if ( m_data->get_channel(c)->descriptor() != other->get_channel(c)->descriptor() )
    408408                        return false;
    409409        }
     
    419419        int och_ti = other->get_channel_index( slot::TEXCOORD );
    420420        if ( ch_pi == -1 || ch_ti == -1 ) return;
    421         size_t size   = m_data->m_channels[ unsigned(ch_ti) ]->count;
    422         size_t osize  =  other->m_channels[ unsigned(och_ti) ]->count;
    423         size_t count  = m_data->m_channels[ unsigned(ch_pi) ]->count;
    424         size_t ocount =  other->m_channels[ unsigned(och_pi) ]->count;
     421        size_t size   = m_data->m_channels[ unsigned(ch_ti) ]->element_count();
     422        size_t osize  =  other->m_channels[ unsigned(och_ti) ]->element_count();
     423        size_t count  = m_data->m_channels[ unsigned(ch_pi) ]->element_count();
     424        size_t ocount =  other->m_channels[ unsigned(och_pi) ]->element_count();
    425425        if ( count % size != 0 || ocount % osize != 0 ) return;
    426426        if ( count / size != ocount / osize ) return;
     
    428428        for ( uint32 c = 0; c < m_data->get_channel_count(); ++c )
    429429        {
    430                 mesh_raw_channel* old = m_data->m_channels[c];
    431                 size_t frame_count = ( old->get_buffer_type() == INDEX_BUFFER ? 1 : old->count / size );
     430                raw_data_channel* old = m_data->m_channels[c];
     431                size_t frame_count = ( old->get_buffer_type() == INDEX_BUFFER ? 1 : old->element_count() / size );
    432432                m_data->m_channels[c] = append_channels( old, other->m_channels[c], frame_count );
    433433                NV_ASSERT( m_data->m_channels[c], "Merge problem!" );
     
    440440                                        NV_ASSERT( size + osize < uint16(-1), "Index out of range!" );
    441441                                        uint16* indexes = reinterpret_cast<uint16*>( m_data->m_channels[c]->data );
    442                                         for ( uint16 i = uint16( old->count ); i < m_data->m_channels[c]->count; ++i )
     442                                        for ( uint16 i = uint16( old->element_count() ); i < m_data->m_channels[c]->element_count(); ++i )
    443443                                                indexes[i] += uint16( size );
    444444
     
    448448                                {
    449449                                        uint32* indexes = reinterpret_cast<uint32*>( m_data->m_channels[c]->data );
    450                                         for ( uint32 i = old->count; i < m_data->m_channels[c]->count; ++i )
     450                                        for ( uint32 i = old->element_count(); i < m_data->m_channels[c]->element_count(); ++i )
    451451                                                indexes[i] += size;
    452452                                }
Note: See TracChangeset for help on using the changeset viewer.