mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2024-11-28 18:45:54 -05:00
Added gl_FrontFacing builtin for HLSL.
This commit is contained in:
parent
2cf5c45224
commit
a2466367ac
2 changed files with 35 additions and 7 deletions
Binary file not shown.
|
@ -1671,32 +1671,60 @@ int main(int _argc, const char* _argv[])
|
||||||
|
|
||||||
if (fragment)
|
if (fragment)
|
||||||
{
|
{
|
||||||
preprocessor.writef("#define void_main() \\\n");
|
bool hasFragCoord = NULL != strstr(data, "gl_FragCoord") || hlsl > 3;
|
||||||
preprocessor.writef("\tvoid main(vec4 gl_FragCoord : SV_POSITION \\\n");
|
bool hasFragDepth = NULL != strstr(data, "gl_FragDepth");
|
||||||
|
bool hasFrontFacing = NULL != strstr(data, "gl_FrontFacing");
|
||||||
|
|
||||||
|
preprocessor.writef("#define void_main()");
|
||||||
|
preprocessor.writef(" \\\n\tvoid main(");
|
||||||
|
|
||||||
|
uint32_t arg = 0;
|
||||||
|
|
||||||
|
if (hasFragCoord)
|
||||||
|
{
|
||||||
|
preprocessor.writef(" \\\n\tvec4 gl_FragCoord : SV_POSITION");
|
||||||
|
++arg;
|
||||||
|
}
|
||||||
|
|
||||||
for (InOut::const_iterator it = shaderInputs.begin(), itEnd = shaderInputs.end(); it != itEnd; ++it)
|
for (InOut::const_iterator it = shaderInputs.begin(), itEnd = shaderInputs.end(); it != itEnd; ++it)
|
||||||
{
|
{
|
||||||
VaryingMap::const_iterator varyingIt = varyingMap.find(*it);
|
VaryingMap::const_iterator varyingIt = varyingMap.find(*it);
|
||||||
if (varyingIt != varyingMap.end() )
|
if (varyingIt != varyingMap.end() )
|
||||||
{
|
{
|
||||||
const Varying& var = varyingIt->second;
|
const Varying& var = varyingIt->second;
|
||||||
preprocessor.writef("\t, %s %s : %s \\\n", var.m_type.c_str(), var.m_name.c_str(), var.m_semantics.c_str() );
|
preprocessor.writef(" \\\n\t%s%s %s : %s", arg > 0 ? ", " : "", var.m_type.c_str(), var.m_name.c_str(), var.m_semantics.c_str() );
|
||||||
|
++arg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
preprocessor.writef(
|
preprocessor.writef(
|
||||||
", out vec4 gl_FragColor : SV_TARGET \\\n"
|
" \\\n\t, out vec4 gl_FragColor : SV_TARGET"
|
||||||
);
|
);
|
||||||
|
|
||||||
if (NULL != strstr(data, "gl_FragDepth") )
|
if (hasFragDepth)
|
||||||
{
|
{
|
||||||
preprocessor.writef(
|
preprocessor.writef(
|
||||||
", out float gl_FragDepth : SV_DEPTH \\\n"
|
" \\\n\t, out float gl_FragDepth : SV_DEPTH"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hasFrontFacing)
|
||||||
|
{
|
||||||
|
preprocessor.writef(
|
||||||
|
" \\\n\t, float __vface : VFACE"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
preprocessor.writef(
|
preprocessor.writef(
|
||||||
")\n"
|
" \\\n\t)\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (hasFrontFacing)
|
||||||
|
{
|
||||||
|
preprocessor.writef(
|
||||||
|
"#define gl_FrontFacing (__vface <= 0.0)\n"
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue