summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_vartable.h
diff options
context:
space:
mode:
authorBrian <brian@yutani.localnet.net>2007-01-13 14:49:52 -0700
committerBrian <brian@yutani.localnet.net>2007-01-13 14:49:52 -0700
commit691ed5e54b0dc305c9a117a6a9804435041a86f0 (patch)
treef43dcd52cfd382c4d1f0c3c90fb28140d55e44dc /src/mesa/shader/slang/slang_vartable.h
parent5daa99d2a40fa12d51043c4e326bf62f66ef727d (diff)
Rework code related to temp register allocation, both for user variables
and expression temporarires. Much better register utilization now. Lots of other fixes. The OpenGL GLSL "orange book" brick shader demo works now.
Diffstat (limited to 'src/mesa/shader/slang/slang_vartable.h')
-rw-r--r--src/mesa/shader/slang/slang_vartable.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/mesa/shader/slang/slang_vartable.h b/src/mesa/shader/slang/slang_vartable.h
new file mode 100644
index 0000000000..c8e37c94aa
--- /dev/null
+++ b/src/mesa/shader/slang/slang_vartable.h
@@ -0,0 +1,38 @@
+
+#ifndef SLANG_VARTABLE_H
+#define SLANG_VARTABLE_H
+
+
+typedef struct slang_var_table_ slang_var_table;
+
+struct slang_variable_;
+
+extern slang_var_table *
+_slang_push_var_table(slang_var_table *parent);
+
+extern slang_var_table *
+_slang_pop_var_table(slang_var_table *t);
+
+extern void
+_slang_add_variable(slang_var_table *t, struct slang_variable_ *v);
+
+extern struct slang_variable_ *
+_slang_find_variable(const slang_var_table *t, slang_atom name);
+
+extern GLint
+_slang_alloc_var(slang_var_table *t, GLint size);
+
+extern void
+_slang_reserve_var(slang_var_table *t, GLint r, GLint size);
+
+extern GLint
+_slang_alloc_temp(slang_var_table *t, GLint size);
+
+extern void
+_slang_free_temp(slang_var_table *t, GLint r, GLint size);
+
+extern GLboolean
+_slang_is_temp(slang_var_table *t, GLint r);
+
+
+#endif /* SLANG_VARTABLE_H */