@@ -6559,14 +6559,14 @@ A second parameter will cause it to print in sorted order
65596559*/
65606560void R_ListShaders_f ()
65616561{
6562- std::unordered_map<shaderType_t, std::string> shaderTypeName = {
6562+ static const std::unordered_map<shaderType_t, std::string> shaderTypeName = {
65636563 { shaderType_t::SHADER_2D, " 2D" },
65646564 { shaderType_t::SHADER_3D_DYNAMIC, " 3D_DYNAMIC" },
65656565 { shaderType_t::SHADER_3D_STATIC, " 3D_STATIC" },
65666566 { shaderType_t::SHADER_LIGHT, " LIGHT" },
65676567 };
65686568
6569- std::unordered_map<shaderSort_t, std::string> shaderSortName = {
6569+ static const std::unordered_map<shaderSort_t, std::string> shaderSortName = {
65706570 { shaderSort_t::SS_BAD, " BAD" },
65716571 { shaderSort_t::SS_PORTAL, " PORTAL" },
65726572 { shaderSort_t::SS_DEPTH, " DEPTH" },
@@ -6592,7 +6592,7 @@ void R_ListShaders_f()
65926592 { shaderSort_t::SS_POST_PROCESS, " POST_PROCESS" },
65936593 };
65946594
6595- std::unordered_map<stageType_t, std::string> stageTypeName = {
6595+ static const std::unordered_map<stageType_t, std::string> stageTypeName = {
65966596 { stageType_t::ST_COLORMAP, " COLORMAP" },
65976597 { stageType_t::ST_GLOWMAP, " GLOWMAP" },
65986598 { stageType_t::ST_DIFFUSEMAP, " DIFFUSEMAP" },
@@ -6689,8 +6689,26 @@ void R_ListShaders_f()
66896689 stageCount += shader->numStages ;
66906690 highestShaderStageCount = std::max ( highestShaderStageCount, shader->numStages );
66916691
6692- shaderType = shaderTypeName[ shader->type ];
6693- shaderSort = shaderSortName[ (shaderSort_t) shader->sort ];
6692+ if ( !shaderTypeName.count ( shader->type ) )
6693+ {
6694+ Log::Debug ( " Undocumented shader type %i for shader %s" ,
6695+ Util::ordinal ( shader->type ), shader->name );
6696+ }
6697+ else
6698+ {
6699+ shaderType = shaderTypeName.at ( shader->type );
6700+ }
6701+
6702+ if ( !shaderSortName.count ( (shaderSort_t) shader->sort ) )
6703+ {
6704+ Log::Debug ( " Undocumented shader sort %f for shader %s" ,
6705+ shader->sort , shader->name );
6706+ }
6707+ else
6708+ {
6709+ shaderSort = shaderSortName.at ( (shaderSort_t) shader->sort );
6710+ }
6711+
66946712 interactLight = shader->interactLight ? " INTERACTLIGHT" : " " ;
66956713 shaderName = shader->name ;
66966714 shaderName += shader->defaultShader ? " (DEFAULTED)" : " " ;
@@ -6699,7 +6717,15 @@ void R_ListShaders_f()
66996717 {
67006718 shaderStage_t *stage = shader->stages [ j ];
67016719
6702- stageType = stageTypeName[ stage->type ];
6720+ if ( !stageTypeName.count ( stage->type ) )
6721+ {
6722+ Log::Debug ( " Undocumented stage type %i for shader stage %s:%d" ,
6723+ Util::ordinal ( stage->type ), shader->name , j );
6724+ }
6725+ else
6726+ {
6727+ stageType = stageTypeName.at ( stage->type );
6728+ }
67036729
67046730 lineStream.clear ();
67056731 lineStream.str (" " );
0 commit comments