[Fix]: (MG_Util/ShaderTranspiler/ShaderSourceProcessor): fix trailing \n not get removed

This commit is contained in:
2025-11-13 09:39:53 +08:00
parent e6c5e132b8
commit d3ea83992c
@@ -4,14 +4,6 @@ namespace MobileGL {
namespace MG_Util {
namespace ShaderTranspiler {
void PreprocessShaderSource(ShaderStage stage, String& source) {
// remove #line directives
SizeT linedirPos = source.find("#line");
while (linedirPos != std::string::npos) {
SizeT newlinePos = source.find('\n', linedirPos);
source = source.replace(linedirPos, newlinePos - linedirPos, "");
linedirPos = source.find("#line", linedirPos);
}
// remove multi-line comment
size_t commentStartPos = source.find("/*");
while (commentStartPos != std::string::npos) {
@@ -21,6 +13,15 @@ namespace MobileGL {
commentStartPos = source.find("/*", commentStartPos);
}
// remove #line directives
SizeT linedirPos = source.find("#line");
while (linedirPos != std::string::npos) {
SizeT newlinePos = source.find('\n', linedirPos);
// + length of "\n"
source = source.replace(linedirPos, newlinePos - linedirPos + 1, "");
linedirPos = source.find("#line", linedirPos);
}
// force #version
ShaderProfile profile = ShaderProfile::Core;
SizeT versionPos = source.find("#version");