glsl: Define enum ir_depth_layout
authorChad Versace <chad.versace@intel.com>
Thu, 27 Jan 2011 09:40:22 +0000 (01:40 -0800)
committerChad Versace <chad.versace@intel.com>
Thu, 27 Jan 2011 00:37:44 +0000 (16:37 -0800)
src/glsl/ir.cpp
src/glsl/ir.h

index 460d43b02e1361f2532ea3db63ebdb794d0d54b4..b3676d5707626701a52b2b9b50651d6be37cffa5 100644 (file)
@@ -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)
 {
index 7b83c2836ee92e257dbfc703e1c060a39985d437..7399df40385e8ef34e4f4aa1bd870b9e405a9011 100644 (file)
@@ -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: