diff options
-rw-r--r-- | ir.cpp | 17 | ||||
-rw-r--r-- | ir.h | 10 |
2 files changed, 27 insertions, 0 deletions
@@ -738,6 +738,23 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name) } +const char * +ir_variable::interpolation_string() const +{ + if (!this->shader_in && !this->shader_out) + return ""; + + switch (this->interpolation) { + case ir_var_smooth: return "smooth"; + case ir_var_flat: return "flat"; + case ir_var_noperspective: return "noperspective"; + } + + assert(!"Should not get here."); + return ""; +} + + ir_function_signature::ir_function_signature(const glsl_type *return_type) : return_type(return_type), is_defined(false) { @@ -177,6 +177,16 @@ public: return var; } + /** + * Get the string value for the interpolation qualifier + * + * \return + * If none of \c shader_in or \c shader_out is set, an empty string will + * be returned. Otherwise the string that would be used in a shader to + * specify \c mode will be returned. + */ + const char *interpolation_string() const; + const char *name; /** |