forked from Mirrorlandia_minetest/minetest
Dump shader programs on compile errors
This commit is contained in:
parent
7e5eea9ad5
commit
f253ff9f1a
@ -808,6 +808,9 @@ ShaderInfo generate_shader(std::string name, u8 material_type, u8 drawtype,
|
|||||||
"failed to generate \""<<name<<"\", "
|
"failed to generate \""<<name<<"\", "
|
||||||
"addHighLevelShaderMaterial failed."
|
"addHighLevelShaderMaterial failed."
|
||||||
<<std::endl;
|
<<std::endl;
|
||||||
|
dumpShaderProgram(warningstream, "Vertex", vertex_program);
|
||||||
|
dumpShaderProgram(warningstream, "Pixel", pixel_program);
|
||||||
|
dumpShaderProgram(warningstream, "Geometry", geometry_program);
|
||||||
return shaderinfo;
|
return shaderinfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -826,6 +829,8 @@ ShaderInfo generate_shader(std::string name, u8 material_type, u8 drawtype,
|
|||||||
"failed to generate \""<<name<<"\", "
|
"failed to generate \""<<name<<"\", "
|
||||||
"addShaderMaterial failed."
|
"addShaderMaterial failed."
|
||||||
<<std::endl;
|
<<std::endl;
|
||||||
|
dumpShaderProgram(warningstream, "Vertex", vertex_program);
|
||||||
|
dumpShaderProgram(warningstream,"Pixel", pixel_program);
|
||||||
return shaderinfo;
|
return shaderinfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -871,3 +876,21 @@ void load_shaders(std::string name, SourceShaderCache *sourcecache,
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dumpShaderProgram(std::ostream &output_stream,
|
||||||
|
const std::string &program_type, const std::string &program)
|
||||||
|
{
|
||||||
|
output_stream << program_type << " shader program:" << std::endl <<
|
||||||
|
"----------------------------------" << std::endl;
|
||||||
|
size_t pos = 0;
|
||||||
|
size_t prev = 0;
|
||||||
|
s16 line = 1;
|
||||||
|
while ((pos = program.find("\n", prev)) != std::string::npos) {
|
||||||
|
output_stream << line++ << ": "<< program.substr(prev, pos - prev) <<
|
||||||
|
std::endl;
|
||||||
|
prev = pos + 1;
|
||||||
|
}
|
||||||
|
output_stream << line << ": " << program.substr(prev) << std::endl <<
|
||||||
|
"End of " << program_type << " shader program." << std::endl <<
|
||||||
|
" " << std::endl;
|
||||||
|
}
|
||||||
|
@ -110,4 +110,7 @@ public:
|
|||||||
|
|
||||||
IWritableShaderSource* createShaderSource(IrrlichtDevice *device);
|
IWritableShaderSource* createShaderSource(IrrlichtDevice *device);
|
||||||
|
|
||||||
|
void dumpShaderProgram(std::ostream &output_stream,
|
||||||
|
const std::string &program_type, const std::string &program);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user