mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-11 15:22:16 +00:00
- made postprocess shader parsing a little more strict, will error out more frequently with common mistakes.
This commit is contained in:
parent
7436693860
commit
b30b93f40f
1 changed files with 15 additions and 0 deletions
|
@ -683,6 +683,13 @@ void gl_ParseHardwareShader(FScanner &sc, int deflump)
|
||||||
PostProcessShader shaderdesc;
|
PostProcessShader shaderdesc;
|
||||||
shaderdesc.Target = sc.String;
|
shaderdesc.Target = sc.String;
|
||||||
|
|
||||||
|
bool validTarget = false;
|
||||||
|
if (sc.Compare("beforebloom")) validTarget = true;
|
||||||
|
if (sc.Compare("scene")) validTarget = true;
|
||||||
|
if (sc.Compare("screen")) validTarget = true;
|
||||||
|
if (!validTarget)
|
||||||
|
sc.ScriptError("Invalid target '%s' for postprocess shader",sc.String);
|
||||||
|
|
||||||
sc.MustGetToken('{');
|
sc.MustGetToken('{');
|
||||||
while (!sc.CheckToken('}'))
|
while (!sc.CheckToken('}'))
|
||||||
{
|
{
|
||||||
|
@ -694,6 +701,8 @@ void gl_ParseHardwareShader(FScanner &sc, int deflump)
|
||||||
|
|
||||||
sc.MustGetNumber();
|
sc.MustGetNumber();
|
||||||
shaderdesc.ShaderVersion = sc.Number;
|
shaderdesc.ShaderVersion = sc.Number;
|
||||||
|
if (sc.Number > 450 || sc.Number < 330)
|
||||||
|
sc.ScriptError("Shader version must be in range 330 to 450!");
|
||||||
}
|
}
|
||||||
else if (sc.Compare("name"))
|
else if (sc.Compare("name"))
|
||||||
{
|
{
|
||||||
|
@ -719,6 +728,8 @@ void gl_ParseHardwareShader(FScanner &sc, int deflump)
|
||||||
parsedType = PostProcessUniformType::Vec2;
|
parsedType = PostProcessUniformType::Vec2;
|
||||||
else if (uniformType.Compare("vec3") == 0)
|
else if (uniformType.Compare("vec3") == 0)
|
||||||
parsedType = PostProcessUniformType::Vec3;
|
parsedType = PostProcessUniformType::Vec3;
|
||||||
|
else
|
||||||
|
sc.ScriptError("Unrecognized uniform type '%s'", sc.String);
|
||||||
|
|
||||||
if (parsedType != PostProcessUniformType::Undefined)
|
if (parsedType != PostProcessUniformType::Undefined)
|
||||||
shaderdesc.Uniforms[uniformName].Type = parsedType;
|
shaderdesc.Uniforms[uniformName].Type = parsedType;
|
||||||
|
@ -727,6 +738,10 @@ void gl_ParseHardwareShader(FScanner &sc, int deflump)
|
||||||
{
|
{
|
||||||
shaderdesc.Enabled = true;
|
shaderdesc.Enabled = true;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sc.ScriptError("Unknown keyword '%s'", sc.String);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PostProcessShaders.Push(shaderdesc);
|
PostProcessShaders.Push(shaderdesc);
|
||||||
|
|
Loading…
Reference in a new issue