summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChad Versace <[email protected]>2011-01-27 01:40:22 -0800
committerChad Versace <[email protected]>2011-01-26 16:37:44 -0800
commit5fc57f471b10e74546f999269a2a8f9186da9731 (patch)
tree89d95eefffe0779bb8a18c29962c66dc65f0514d
parent39cad66a889b453d78e83e6a20560bcc338000de (diff)
glsl: Define enum ir_depth_layout
-rw-r--r--src/glsl/ir.cpp16
-rw-r--r--src/glsl/ir.h19
2 files changed, 35 insertions, 0 deletions
diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp
index 460d43b02e1..b3676d57076 100644
--- a/src/glsl/ir.cpp
+++ b/src/glsl/ir.cpp
@@ -472,6 +472,22 @@ const char *ir_expression::operator_string()
return operator_string(this->operation);
}
+const char*
+depth_layout_string(ir_depth_layout layout)
+{
+ switch(layout) {
+ case ir_depth_layout_none: return "";
+ case ir_depth_layout_any: return "depth_any";
+ case ir_depth_layout_greater: return "depth_greater";
+ case ir_depth_layout_less: return "depth_less";
+ case ir_depth_layout_unchanged: return "depth_unchanged";
+
+ default:
+ assert(0);
+ return "";
+ }
+}
+
ir_expression_operation
ir_expression::get_operator(const char *str)
{
diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index 7b83c2836ee..7399df40385 100644
--- a/src/glsl/ir.h
+++ b/src/glsl/ir.h
@@ -235,6 +235,25 @@ enum ir_variable_interpolation {
ir_var_noperspective
};
+/**
+ * \brief Layout qualifiers for gl_FragDepth.
+ *
+ * The AMD_conservative_depth extension allows gl_FragDepth to be redeclared
+ * with a layout qualifier.
+ */
+enum ir_depth_layout {
+ ir_depth_layout_none, /**< No depth layout is specified. */
+ ir_depth_layout_any,
+ ir_depth_layout_greater,
+ ir_depth_layout_less,
+ ir_depth_layout_unchanged
+};
+
+/**
+ * \brief Convert depth layout qualifier to string.
+ */
+const char*
+depth_layout_string(ir_depth_layout layout);
class ir_variable : public ir_instruction {
public: