glsl: Add method ast_type_qualifier::interpolation_string()

If an interpolation qualifier is present, then the method returns that
qualifier's string representation. For example, if the noperspective bit
is set, then it returns "noperspective".
This commit is contained in:
Chad Versace
2011-01-11 16:59:24 -08:00
parent 5a64626ee5
commit 0e2f8936c8
2 changed files with 25 additions and 0 deletions

View File

@@ -364,6 +364,18 @@ struct ast_type_qualifier {
* This field is only valid if \c explicit_location is set. * This field is only valid if \c explicit_location is set.
*/ */
unsigned location; unsigned location;
/**
* \brief Return string representation of interpolation qualifier.
*
* If an interpolation qualifier is present, then return that qualifier's
* string representation. Otherwise, return null. For example, if the
* noperspective bit is set, then this returns "noperspective".
*
* If multiple interpolation qualifiers are somehow present, then the
* returned string is undefined but not null.
*/
const char *interpolation_string() const;
}; };
class ast_struct_specifier : public ast_node { class ast_struct_specifier : public ast_node {

View File

@@ -116,3 +116,16 @@ ast_fully_specified_type::has_qualifiers() const
{ {
return this->qualifier.flags.i != 0; return this->qualifier.flags.i != 0;
} }
const char*
ast_type_qualifier::interpolation_string() const
{
if (this->flags.q.smooth)
return "smooth";
else if (this->flags.q.flat)
return "flat";
else if (this->flags.q.noperspective)
return "noperspective";
else
return NULL;
}