From: Ian Romanick Date: Sat, 19 Jun 2010 02:00:28 +0000 (-0700) Subject: ir_variable: Add method to get string representing interpolation qualifier X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=950ceb2bd60c25e7fecdff0fbcbf6e69015588f3;p=mesa.git ir_variable: Add method to get string representing interpolation qualifier --- diff --git a/ir.cpp b/ir.cpp index 7fc260db390..61589c3ff20 100644 --- a/ir.cpp +++ b/ir.cpp @@ -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) { diff --git a/ir.h b/ir.h index a04b688894b..04ecb582e48 100644 --- a/ir.h +++ b/ir.h @@ -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; /**