@@ -808,6 +808,9 @@ ShaderInfo generate_shader(std::string name, u8 material_type, u8 drawtype,
808
808
" failed to generate \" " <<name<<" \" , "
809
809
" addHighLevelShaderMaterial failed."
810
810
<<std::endl;
811
+ dumpShaderProgram (warningstream, " Vertex" , vertex_program);
812
+ dumpShaderProgram (warningstream, " Pixel" , pixel_program);
813
+ dumpShaderProgram (warningstream, " Geometry" , geometry_program);
811
814
return shaderinfo;
812
815
}
813
816
}
@@ -826,6 +829,8 @@ ShaderInfo generate_shader(std::string name, u8 material_type, u8 drawtype,
826
829
" failed to generate \" " <<name<<" \" , "
827
830
" addShaderMaterial failed."
828
831
<<std::endl;
832
+ dumpShaderProgram (warningstream, " Vertex" , vertex_program);
833
+ dumpShaderProgram (warningstream," Pixel" , pixel_program);
829
834
return shaderinfo;
830
835
}
831
836
}
@@ -871,3 +876,21 @@ void load_shaders(std::string name, SourceShaderCache *sourcecache,
871
876
}
872
877
873
878
}
879
+
880
+ void dumpShaderProgram (std::ostream &output_stream,
881
+ const std::string &program_type, const std::string &program)
882
+ {
883
+ output_stream << program_type << " shader program:" << std::endl <<
884
+ " ----------------------------------" << std::endl;
885
+ size_t pos = 0 ;
886
+ size_t prev = 0 ;
887
+ s16 line = 1 ;
888
+ while ((pos = program.find (" \n " , prev)) != std::string::npos) {
889
+ output_stream << line++ << " : " << program.substr (prev, pos - prev) <<
890
+ std::endl;
891
+ prev = pos + 1 ;
892
+ }
893
+ output_stream << line << " : " << program.substr (prev) << std::endl <<
894
+ " End of " << program_type << " shader program." << std::endl <<
895
+ " " << std::endl;
896
+ }
0 commit comments