summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_storage.h
diff options
context:
space:
mode:
authorMichal Krol <mjkrol@gmail.org>2006-08-09 20:05:26 +0000
committerMichal Krol <mjkrol@gmail.org>2006-08-09 20:05:26 +0000
commitedefc658e4374fea96404715ce176b24942322d3 (patch)
treee5bbe94949bbf7c2db2965e9f75c854458811037 /src/mesa/shader/slang/slang_storage.h
parent9f344b3e7d6e23674dd4747faec253f103563b36 (diff)
More GLSL code - more support for vec4 operations on x86 back-end.
Diffstat (limited to 'src/mesa/shader/slang/slang_storage.h')
-rw-r--r--src/mesa/shader/slang/slang_storage.h22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/mesa/shader/slang/slang_storage.h b/src/mesa/shader/slang/slang_storage.h
index 532ea638ee..209f8674d9 100644
--- a/src/mesa/shader/slang/slang_storage.h
+++ b/src/mesa/shader/slang/slang_storage.h
@@ -41,13 +41,19 @@ extern "C" {
*
* For now, only the three basic types are supported, that is bool, int and float. Other built-in
* types like vector or matrix can easily be decomposed into a series of basic types.
+ *
+ * If the vec4 module is enabled, 4-component vectors of floats are used when possible. 4x4 matrices
+ * are constructed of 4 vec4 slots.
*/
typedef enum slang_storage_type_
{
- slang_stor_aggregate,
- slang_stor_bool,
- slang_stor_int,
- slang_stor_float
+ /* core */
+ slang_stor_aggregate,
+ slang_stor_bool,
+ slang_stor_int,
+ slang_stor_float,
+ /* vec4 */
+ slang_stor_vec4
} slang_storage_type;
/*
@@ -106,6 +112,14 @@ _slang_evaluate_int(slang_assembly_file *file,
slang_atom_pool *atoms);
/*
+ * Returns the size (in machine units) of the given storage type.
+ * It is an error to pass-in slang_stor_aggregate.
+ * Returns 0 on error.
+ */
+extern GLuint
+_slang_sizeof_type (slang_storage_type);
+
+/*
* Returns total size (in machine units) of the given aggregate.
* Returns 0 on error.
*/