updated some printfs, added comment about sched_yield
[mesa.git] / src / mesa / shader / slang / slang_link.h
index 7395c77c5dfac6eacbd5a77cb27a9ae242a1a777..1592aefe2ecf88c801f62e0827eadfa799f4e302 100644 (file)
 #if !defined SLANG_LINK_H\r
 #define SLANG_LINK_H\r
 \r
-#include "slang_assemble.h"\r
-#include "slang_execute.h"\r
+#include "slang_compile.h"\r
 \r
 #if defined __cplusplus\r
 extern "C" {\r
 #endif\r
 \r
-#define SLANG_UNIFORM_BINDING_VERTEX 0\r
-#define SLANG_UNIFORM_BINDING_FRAGMENT 1\r
-#define SLANG_UNIFORM_BINDING_MAX 2\r
+enum\r
+{\r
+       SLANG_SHADER_VERTEX,\r
+       SLANG_SHADER_FRAGMENT,\r
+       SLANG_SHADER_MAX\r
+};\r
 \r
 typedef struct\r
 {\r
        slang_export_data_quant *quant;\r
        char *name;\r
-       GLuint address[SLANG_UNIFORM_BINDING_MAX];\r
+       GLuint address[SLANG_SHADER_MAX];\r
 } slang_uniform_binding;\r
 \r
 typedef struct\r
@@ -49,10 +51,135 @@ typedef struct
        GLuint count;\r
 } slang_uniform_bindings;\r
 \r
+typedef struct\r
+{\r
+       slang_export_data_quant *quant;\r
+       char *name;\r
+} slang_active_uniform;\r
+\r
+typedef struct\r
+{\r
+       slang_active_uniform *table;\r
+       GLuint count;\r
+} slang_active_uniforms;\r
+\r
+typedef struct\r
+{\r
+       slang_export_data_quant *quant;\r
+       GLuint frag_address;\r
+} slang_texture_usage;\r
+\r
+typedef struct\r
+{\r
+       slang_texture_usage *table;\r
+       GLuint count;\r
+} slang_texture_usages;\r
+\r
+GLvoid slang_texture_usages_ctr (slang_texture_usages *);\r
+GLvoid slang_texture_usages_dtr (slang_texture_usages *);\r
+\r
+enum\r
+{\r
+       SLANG_COMMON_FIXED_MODELVIEWMATRIX,\r
+       SLANG_COMMON_FIXED_PROJECTIONMATRIX,\r
+       SLANG_COMMON_FIXED_MODELVIEWPROJECTIONMATRIX,\r
+       SLANG_COMMON_FIXED_TEXTUREMATRIX,\r
+       SLANG_COMMON_FIXED_NORMALMATRIX,\r
+       SLANG_COMMON_FIXED_MODELVIEWMATRIXINVERSE,\r
+       SLANG_COMMON_FIXED_PROJECTIONMATRIXINVERSE,\r
+       SLANG_COMMON_FIXED_MODELVIEWPROJECTIONMATRIXINVERSE,\r
+       SLANG_COMMON_FIXED_TEXTUREMATRIXINVERSE,\r
+       SLANG_COMMON_FIXED_MODELVIEWMATRIXTRANSPOSE,\r
+       SLANG_COMMON_FIXED_PROJECTIONMATRIXTRANSPOSE,\r
+       SLANG_COMMON_FIXED_MODELVIEWPROJECTIONMATRIXTRANSPOSE,\r
+       SLANG_COMMON_FIXED_TEXTUREMATRIXTRANSPOSE,\r
+       SLANG_COMMON_FIXED_MODELVIEWMATRIXINVERSETRANSPOSE,\r
+       SLANG_COMMON_FIXED_PROJECTIONMATRIXINVERSETRANSPOSE,\r
+       SLANG_COMMON_FIXED_MODELVIEWPROJECTIONMATRIXINVERSETRANSPOSE,\r
+       SLANG_COMMON_FIXED_TEXTUREMATRIXINVERSETRANSPOSE,\r
+       SLANG_COMMON_FIXED_NORMALSCALE,\r
+       SLANG_COMMON_FIXED_DEPTHRANGE,\r
+       SLANG_COMMON_FIXED_CLIPPLANE,\r
+       SLANG_COMMON_FIXED_POINT,\r
+       SLANG_COMMON_FIXED_FRONTMATERIAL,\r
+       SLANG_COMMON_FIXED_BACKMATERIAL,\r
+       SLANG_COMMON_FIXED_LIGHTSOURCE,\r
+       SLANG_COMMON_FIXED_LIGHTMODEL,\r
+       SLANG_COMMON_FIXED_FRONTLIGHTMODELPRODUCT,\r
+       SLANG_COMMON_FIXED_BACKLIGHTMODELPRODUCT,\r
+       SLANG_COMMON_FIXED_FRONTLIGHTPRODUCT,\r
+       SLANG_COMMON_FIXED_BACKLIGHTPRODUCT,\r
+       SLANG_COMMON_FIXED_TEXTUREENVCOLOR,\r
+       SLANG_COMMON_FIXED_EYEPLANES,\r
+       SLANG_COMMON_FIXED_EYEPLANET,\r
+       SLANG_COMMON_FIXED_EYEPLANER,\r
+       SLANG_COMMON_FIXED_EYEPLANEQ,\r
+       SLANG_COMMON_FIXED_OBJECTPLANES,\r
+       SLANG_COMMON_FIXED_OBJECTPLANET,\r
+       SLANG_COMMON_FIXED_OBJECTPLANER,\r
+       SLANG_COMMON_FIXED_OBJECTPLANEQ,\r
+       SLANG_COMMON_FIXED_FOG,\r
+       SLANG_COMMON_FIXED_MAX\r
+};\r
+\r
+enum\r
+{\r
+       SLANG_VERTEX_FIXED_POSITION,\r
+       SLANG_VERTEX_FIXED_POINTSIZE,\r
+       SLANG_VERTEX_FIXED_CLIPVERTEX,\r
+       SLANG_VERTEX_FIXED_COLOR,\r
+       SLANG_VERTEX_FIXED_SECONDARYCOLOR,\r
+       SLANG_VERTEX_FIXED_NORMAL,\r
+       SLANG_VERTEX_FIXED_VERTEX,\r
+       SLANG_VERTEX_FIXED_MULTITEXCOORD0,\r
+       SLANG_VERTEX_FIXED_MULTITEXCOORD1,\r
+       SLANG_VERTEX_FIXED_MULTITEXCOORD2,\r
+       SLANG_VERTEX_FIXED_MULTITEXCOORD3,\r
+       SLANG_VERTEX_FIXED_MULTITEXCOORD4,\r
+       SLANG_VERTEX_FIXED_MULTITEXCOORD5,\r
+       SLANG_VERTEX_FIXED_MULTITEXCOORD6,\r
+       SLANG_VERTEX_FIXED_MULTITEXCOORD7,\r
+       SLANG_VERTEX_FIXED_FOGCOORD,\r
+       SLANG_VERTEX_FIXED_FRONTCOLOR,\r
+       SLANG_VERTEX_FIXED_BACKCOLOR,\r
+       SLANG_VERTEX_FIXED_FRONTSECONDARYCOLOR,\r
+       SLANG_VERTEX_FIXED_BACKSECONDARYCOLOR,\r
+       SLANG_VERTEX_FIXED_TEXCOORD,\r
+       SLANG_VERTEX_FIXED_FOGFRAGCOORD,\r
+       SLANG_VERTEX_FIXED_MAX\r
+};\r
+\r
+enum\r
+{\r
+       SLANG_FRAGMENT_FIXED_FRAGCOORD,\r
+       SLANG_FRAGMENT_FIXED_FRONTFACING,\r
+       SLANG_FRAGMENT_FIXED_FRAGCOLOR,\r
+       SLANG_FRAGMENT_FIXED_FRAGDATA,\r
+       SLANG_FRAGMENT_FIXED_FRAGDEPTH,\r
+       SLANG_FRAGMENT_FIXED_COLOR,\r
+       SLANG_FRAGMENT_FIXED_SECONDARYCOLOR,\r
+       SLANG_FRAGMENT_FIXED_TEXCOORD,\r
+       SLANG_FRAGMENT_FIXED_FOGFRAGCOORD,\r
+       SLANG_FRAGMENT_FIXED_MAX\r
+};\r
+\r
+enum\r
+{\r
+       SLANG_COMMON_CODE_MAIN,\r
+       SLANG_COMMON_CODE_MAX\r
+};\r
+\r
 typedef struct\r
 {\r
        slang_uniform_bindings uniforms;\r
-       slang_machine *machines[SLANG_UNIFORM_BINDING_MAX];\r
+       slang_active_uniforms active_uniforms;\r
+       slang_texture_usages texture_usage;\r
+       GLuint common_fixed_entries[SLANG_SHADER_MAX][SLANG_COMMON_FIXED_MAX];\r
+       GLuint vertex_fixed_entries[SLANG_VERTEX_FIXED_MAX];\r
+       GLuint fragment_fixed_entries[SLANG_FRAGMENT_FIXED_MAX];\r
+       GLuint code[SLANG_SHADER_MAX][SLANG_COMMON_CODE_MAX];\r
+       slang_machine *machines[SLANG_SHADER_MAX];\r
+       slang_assembly_file *assemblies[SLANG_SHADER_MAX];\r
 } slang_program;\r
 \r
 GLvoid slang_program_ctr (slang_program *);\r