| 706 | } |
| 707 | |
| 708 | void 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 | |
| 741 | void MapDrawerSoft::LoadWallsTextures( const MapData& map_data ) |
| 742 | { |
nothing calls this directly
no outgoing calls
no test coverage detected