merge from master
[mesa.git] / src / mesa / shader / slang / slang_compile_variable.h
index b0910e855ea3098e9df4938660f4fed6503386b6..d3691f0f51113da051dfed1aad7984079b7ee68d 100644 (file)
@@ -32,15 +32,15 @@ extern "C" {
 
 typedef enum slang_type_qualifier_
 {
-   slang_qual_none,
-   slang_qual_const,
-   slang_qual_attribute,
-   slang_qual_varying,
-   slang_qual_uniform,
-   slang_qual_out,
-   slang_qual_inout,
-   slang_qual_fixedoutput,      /* internal */
-   slang_qual_fixedinput        /* internal */
+   SLANG_QUAL_NONE,
+   SLANG_QUAL_CONST,
+   SLANG_QUAL_ATTRIBUTE,
+   SLANG_QUAL_VARYING,
+   SLANG_QUAL_UNIFORM,
+   SLANG_QUAL_OUT,
+   SLANG_QUAL_INOUT,
+   SLANG_QUAL_FIXEDOUTPUT,      /* internal */
+   SLANG_QUAL_FIXEDINPUT        /* internal */
 } slang_type_qualifier;
 
 extern slang_type_specifier_type
@@ -75,12 +75,11 @@ typedef struct slang_variable_
 {
    slang_fully_specified_type type; /**< Variable's data type */
    slang_atom a_name;               /**< The variable's name (char *) */
-   GLuint array_len;                /**< only if type == slang_spec_array */
+   GLuint array_len;                /**< only if type == SLANG_SPEC_ARRAy */
    struct slang_operation_ *initializer; /**< Optional initializer code */
    GLuint address;                  /**< Storage location */
-   GLuint address2;                 /**< Storage location */
    GLuint size;                     /**< Variable's size in bytes */
-   GLboolean global;                /**< A global var? */
+   GLboolean isTemp;                /**< a named temporary (__resultTmp) */
    void *aux;                       /**< Used during code gen */
 } slang_variable;
 
@@ -90,11 +89,15 @@ typedef struct slang_variable_
  */
 typedef struct slang_variable_scope_
 {
-   slang_variable *variables;  /**< Array [num_variables] */
+   slang_variable **variables;  /**< Array [num_variables] of ptrs to vars */
    GLuint num_variables;
    struct slang_variable_scope_ *outer_scope;
 } slang_variable_scope;
 
+
+extern slang_variable_scope *
+_slang_variable_scope_new(slang_variable_scope *parent);
+
 extern GLvoid
 _slang_variable_scope_ctr(slang_variable_scope *);
 
@@ -105,7 +108,7 @@ extern int
 slang_variable_scope_copy(slang_variable_scope *,
                           const slang_variable_scope *);
 
-slang_variable *
+extern slang_variable *
 slang_variable_scope_grow(slang_variable_scope *);
 
 extern int
@@ -121,11 +124,6 @@ extern slang_variable *
 _slang_locate_variable(const slang_variable_scope *, const slang_atom a_name,
                        GLboolean all);
 
-extern GLboolean
-_slang_build_export_data_table(slang_export_data_table *,
-                               slang_variable_scope *);
-
-
 
 #ifdef __cplusplus
 }