Non-functional: HLSL: Simplify I/O logic for splitting.

This commit is contained in:
John Kessenich 2017-08-02 17:08:43 -06:00
parent 4cf5266042
commit 6042eb475b
2 changed files with 36 additions and 55 deletions

View file

@ -1370,15 +1370,12 @@ public:
virtual bool isImage() const { return basicType == EbtSampler && getSampler().isImage(); }
virtual bool isSubpass() const { return basicType == EbtSampler && getSampler().isSubpass(); }
virtual bool isBuiltInInterstageIO(EShLanguage language) const
{
return isPerVertexAndBuiltIn(language) || isLooseAndBuiltIn(language);
}
virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; }
// Return true if this is an interstage IO builtin
virtual bool isPerVertexAndBuiltIn(EShLanguage language) const
// Return true if this is a per-vertex built-in
virtual bool isPerVertexBuiltIn(EShLanguage language) const
{
if (language == EShLangFragment)
if (getQualifier().builtIn == EbvNone || language == EShLangFragment)
return false;
// Any non-fragment stage
@ -1401,15 +1398,6 @@ public:
}
}
// Return true if this is a loose builtin
virtual bool isLooseAndBuiltIn(EShLanguage language) const
{
if (getQualifier().builtIn == EbvNone)
return false;
return !isPerVertexAndBuiltIn(language);
}
// return true if this type contains any subtype which satisfies the given predicate.
template <typename P>
bool contains(P predicate) const
@ -1451,10 +1439,10 @@ public:
return contains([](const TType* t) { return t->isOpaque(); } );
}
// Recursively checks if the type contains an interstage IO builtin
virtual bool containsBuiltInInterstageIO(EShLanguage language) const
// Recursively checks if the type contains a built-in variable
virtual bool containsBuiltIn() const
{
return contains([language](const TType* t) { return t->isBuiltInInterstageIO(language); } );
return contains([](const TType* t) { return t->isBuiltIn(); } );
}
virtual bool containsNonOpaque() const