Ignore:
Timestamp:
07/09/15 18:53:08 (10 years ago)
Author:
epyon
Message:
  • data_descriptor creators ( buggy )
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/formats/md3_loader.cc

    r412 r413  
    289289{
    290290        md3_t* md3 = reinterpret_cast< md3_t* >( m_md3 );
    291         raw_data_channel* result = raw_data_channel::create<md3_key>( uint32( md3->header.num_frames ) );
     291        data_channel_creator< md3_key > result( uint32( md3->header.num_frames ) );
    292292        // TODO: is this brain damaged in efficiency (loop nest order) or what?
    293293        for ( sint32 f = 0; f < md3->header.num_frames; ++f )
     
    303303                                vec3 axisy  ( md3_vec3( rtag.axis[2] ) );
    304304                                vec3 origin ( md3_vec3( rtag.origin )  );
    305                                 reinterpret_cast< md3_key*>(result->data)[f].tform = transform( origin, quat( mat3( axisx, axisy, axisz ) ) );
     305                                result.data()[f].tform = transform( origin, quat( mat3( axisx, axisy, axisz ) ) );
    306306                        }
    307307                }
    308308
    309309        }
    310         return result;
     310        return result.release();
    311311}
    312312
     
    352352                }
    353353
    354         raw_data_channel* mc_pn = raw_data_channel::create< vtx_md3_pn >( uint32( num_verts * frame_count ) );
    355         raw_data_channel* mc_t  = raw_data_channel::create< vtx_md3_t >( uint32( num_verts ) );
    356         raw_data_channel* ic = raw_data_channel::create< index_u16 >( uint32( index_count ) );
    357         vtx_md3_pn* vtx_pn = reinterpret_cast< vtx_md3_pn* >( mc_pn->data );
    358         vtx_md3_t*  vtx_t  = reinterpret_cast< vtx_md3_t* >( mc_t->data );
    359         uint16*     icp    = reinterpret_cast< uint16* >( ic->data );
     354        data_channel_creator< vtx_md3_pn > mc_pn( static_cast< uint32 >( num_verts * frame_count ) );
     355        data_channel_creator< vtx_md3_t > mc_t( static_cast< uint32 >( num_verts ) );
     356        data_channel_creator< index_u16 > ic( static_cast< uint32 >( index_count ) );
     357        vtx_md3_pn* vtx_pn = mc_pn.data();
     358        vtx_md3_t*  vtx_t = mc_t.data();
     359        uint16*     icp    = &(ic.data()[0].index);
    360360
    361361        uint32 index  = 0;
     
    413413
    414414        data->set_name( reinterpret_cast< char* >( md3->header.name ) );
    415         data->add_channel( mc_pn );
    416         data->add_channel( mc_t );
    417         data->add_channel( ic );
     415        data->add_channel( mc_pn.release() );
     416        data->add_channel( mc_t.release() );
     417        data->add_channel( ic.release() );
    418418}
    419419
Note: See TracChangeset for help on using the changeset viewer.