Merge commit 'origin/gallium-0.1' into gallium-0.2
[mesa.git] / src / mesa / shader / slang / slang_compile_variable.h
index d3691f0f51113da051dfed1aad7984079b7ee68d..d2a86b772c650f08a0b28013ba1c62f8bec1f944 100644 (file)
@@ -30,6 +30,23 @@ extern "C" {
 #endif
 
 
+struct slang_ir_storage_;
+
+
+typedef enum slang_type_variant_
+{
+   SLANG_VARIANT,    /* the default */
+   SLANG_INVARIANT   /* indicates the "invariant" keyword */
+} slang_type_variant;
+
+
+typedef enum slang_type_centroid_
+{
+   SLANG_CENTER,    /* the default */
+   SLANG_CENTROID   /* indicates the "centroid" keyword */
+} slang_type_centroid;
+
+
 typedef enum slang_type_qualifier_
 {
    SLANG_QUAL_NONE,
@@ -51,10 +68,23 @@ slang_type_specifier_type_to_string(slang_type_specifier_type);
 
 
 
+typedef enum slang_type_precision_
+{
+   SLANG_PREC_DEFAULT,
+   SLANG_PREC_LOW,
+   SLANG_PREC_MEDIUM,
+   SLANG_PREC_HIGH
+} slang_type_precision;
+
+
 typedef struct slang_fully_specified_type_
 {
    slang_type_qualifier qualifier;
    slang_type_specifier specifier;
+   slang_type_precision precision;
+   slang_type_variant variant;
+   slang_type_centroid centroid;
+   GLint array_len;           /**< -1 if not an array type */
 } slang_fully_specified_type;
 
 extern int
@@ -80,7 +110,8 @@ typedef struct slang_variable_
    GLuint address;                  /**< Storage location */
    GLuint size;                     /**< Variable's size in bytes */
    GLboolean isTemp;                /**< a named temporary (__resultTmp) */
-   void *aux;                       /**< Used during code gen */
+   GLboolean declared;              /**< for debug */
+   struct slang_ir_storage_ *store; /**< Storage for this var */
 } slang_variable;