From 950ceb2bd60c25e7fecdff0fbcbf6e69015588f3 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 18 Jun 2010 19:00:28 -0700 Subject: [PATCH] ir_variable: Add method to get string representing interpolation qualifier --- ir.cpp | 17 +++++++++++++++++ ir.h | 10 ++++++++++ 2 files changed, 27 insertions(+) diff --git a/ir.cpp b/ir.cpp index 7fc260d..61589c3 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 a04b688..04ecb58 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; /** -- 2.7.4