Shader: Add support for FragCoord builtin
This commit is contained in:
parent
68447ef0da
commit
e7a2573221
|
|
@ -43,7 +43,8 @@ namespace Nz::ShaderAst
|
||||||
|
|
||||||
enum class BuiltinEntry
|
enum class BuiltinEntry
|
||||||
{
|
{
|
||||||
VertexPosition, // gl_Position
|
FragCoord = 1, // gl_FragCoord
|
||||||
|
VertexPosition = 0, // gl_Position
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class ExpressionCategory
|
enum class ExpressionCategory
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,7 @@ namespace Nz
|
||||||
};
|
};
|
||||||
|
|
||||||
std::unordered_map<ShaderAst::BuiltinEntry, Builtin> s_builtinMapping = {
|
std::unordered_map<ShaderAst::BuiltinEntry, Builtin> s_builtinMapping = {
|
||||||
|
{ ShaderAst::BuiltinEntry::FragCoord, { "gl_FragCoord", ShaderStageType::Fragment } },
|
||||||
{ ShaderAst::BuiltinEntry::VertexPosition, { "gl_Position", ShaderStageType::Vertex } }
|
{ ShaderAst::BuiltinEntry::VertexPosition, { "gl_Position", ShaderStageType::Vertex } }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -191,6 +192,10 @@ namespace Nz
|
||||||
{
|
{
|
||||||
switch (builtin)
|
switch (builtin)
|
||||||
{
|
{
|
||||||
|
case ShaderAst::BuiltinEntry::FragCoord:
|
||||||
|
Append("gl_FragCoord");
|
||||||
|
break;
|
||||||
|
|
||||||
case ShaderAst::BuiltinEntry::VertexPosition:
|
case ShaderAst::BuiltinEntry::VertexPosition:
|
||||||
Append("gl_Position");
|
Append("gl_Position");
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -231,6 +231,10 @@ namespace Nz
|
||||||
|
|
||||||
switch (*builtin.builtin)
|
switch (*builtin.builtin)
|
||||||
{
|
{
|
||||||
|
case ShaderAst::BuiltinEntry::FragCoord:
|
||||||
|
Append("builtin(fragcoord)");
|
||||||
|
break;
|
||||||
|
|
||||||
case ShaderAst::BuiltinEntry::VertexPosition:
|
case ShaderAst::BuiltinEntry::VertexPosition:
|
||||||
Append("builtin(position)");
|
Append("builtin(position)");
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ namespace Nz::ShaderLang
|
||||||
};
|
};
|
||||||
|
|
||||||
std::unordered_map<std::string, ShaderAst::BuiltinEntry> s_builtinMapping = {
|
std::unordered_map<std::string, ShaderAst::BuiltinEntry> s_builtinMapping = {
|
||||||
|
{ "fragcoord", ShaderAst::BuiltinEntry::FragCoord },
|
||||||
{ "position", ShaderAst::BuiltinEntry::VertexPosition }
|
{ "position", ShaderAst::BuiltinEntry::VertexPosition }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ namespace Nz
|
||||||
};
|
};
|
||||||
|
|
||||||
std::unordered_map<ShaderAst::BuiltinEntry, Builtin> s_builtinMapping = {
|
std::unordered_map<ShaderAst::BuiltinEntry, Builtin> s_builtinMapping = {
|
||||||
|
{ ShaderAst::BuiltinEntry::FragCoord, { "FragmentCoordinates", ShaderStageType::Fragment, SpirvBuiltIn::FragCoord } },
|
||||||
{ ShaderAst::BuiltinEntry::VertexPosition, { "VertexPosition", ShaderStageType::Vertex, SpirvBuiltIn::Position } }
|
{ ShaderAst::BuiltinEntry::VertexPosition, { "VertexPosition", ShaderStageType::Vertex, SpirvBuiltIn::Position } }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue