glsl_shader_decompiler: Add char overload for ShaderWriter's AddLine()

Avoids constructing a std::string just to append a character.
This commit is contained in:
Lioncash 2018-04-19 20:02:24 -04:00
parent 4ef392906b
commit aa26baa3db

View file

@ -117,6 +117,13 @@ public:
shader_source += text + '\n'; shader_source += text + '\n';
} }
void AddLine(char character) {
DEBUG_ASSERT(scope >= 0);
AppendIndentation();
shader_source += character;
shader_source += '\n';
}
std::string GetResult() { std::string GetResult() {
return std::move(shader_source); return std::move(shader_source);
} }
@ -511,14 +518,14 @@ private:
} }
--shader.scope; --shader.scope;
shader.AddLine("}"); shader.AddLine('}');
} }
shader.AddLine("default: return false;"); shader.AddLine("default: return false;");
shader.AddLine("}"); shader.AddLine('}');
--shader.scope; --shader.scope;
shader.AddLine("}"); shader.AddLine('}');
shader.AddLine("return false;"); shader.AddLine("return false;");
} }
@ -568,7 +575,7 @@ private:
unsigned const_buffer_layout = 0; unsigned const_buffer_layout = 0;
for (const auto& entry : GetConstBuffersDeclarations()) { for (const auto& entry : GetConstBuffersDeclarations()) {
declarations.AddLine("layout(std430) buffer " + entry.GetName()); declarations.AddLine("layout(std430) buffer " + entry.GetName());
declarations.AddLine("{"); declarations.AddLine('{');
declarations.AddLine(" float c" + std::to_string(entry.GetIndex()) + "[];"); declarations.AddLine(" float c" + std::to_string(entry.GetIndex()) + "[];");
declarations.AddLine("};"); declarations.AddLine("};");
declarations.AddLine(""); declarations.AddLine("");