MCPcopy Create free account
hub / github.com/Panzerschrek/Chasm-Reverse / LoadModelsGroup

Method LoadModelsGroup

PanzerChasm/client/map_drawer_soft.cpp:708–739  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

706}
707
708void MapDrawerSoft::LoadModelsGroup( const std::vector<Model>& models, ModelsGroup& out_group )
709{
710 const PaletteTransformed& palette= *rendering_context_.palette_transformed;
711
712 unsigned int texel_count= 0u;
713 for( const Model& model : models )
714 texel_count+= model.texture_data.size();
715
716 out_group.textures_data.resize( texel_count );
717 out_group.models.resize( models.size() );
718
719 unsigned int texture_data_offset= 0u;
720 for( unsigned int m= 0u; m < out_group.models.size(); m++ )
721 {
722 const Model& in_model= models[m];
723 ModelsGroup::ModelEntry& model_entry= out_group.models[m];
724
725 model_entry.texture_size[0]= in_model.texture_size[0];
726 model_entry.texture_size[1]= in_model.texture_size[1];
727 model_entry.texture_data_offset= texture_data_offset;
728
729 for( unsigned int t= 0u; t < in_model.texture_data.size(); t++ )
730 {
731 const unsigned char color_index= in_model.texture_data[t];
732 uint32_t color= palette[ color_index ];
733 if( color_index == 0u ) color&= ~Rasterizer::c_alpha_mask; // For models color #0 is transparent.
734 out_group.textures_data[ texture_data_offset + t ]= color;
735 }
736
737 texture_data_offset+= in_model.texture_data.size();
738 }
739}
740
741void MapDrawerSoft::LoadWallsTextures( const MapData& map_data )
742{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected