-/*\r
- * Mesa 3-D graphics library\r
- * Version: 6.5\r
- *\r
- * Copyright (C) 2005-2006 Brian Paul All Rights Reserved.\r
- *\r
- * Permission is hereby granted, free of charge, to any person obtaining a\r
- * copy of this software and associated documentation files (the "Software"),\r
- * to deal in the Software without restriction, including without limitation\r
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
- * and/or sell copies of the Software, and to permit persons to whom the\r
- * Software is furnished to do so, subject to the following conditions:\r
- *\r
- * The above copyright notice and this permission notice shall be included\r
- * in all copies or substantial portions of the Software.\r
- *\r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN\r
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
- */\r
-\r
-#if !defined SLANG_ASSEMBLE_TYPEINFO_H\r
-#define SLANG_ASSEMBLE_TYPEINFO_H\r
-\r
-#if defined __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-typedef enum slang_type_specifier_type_\r
-{\r
- slang_spec_void,\r
- slang_spec_bool,\r
- slang_spec_bvec2,\r
- slang_spec_bvec3,\r
- slang_spec_bvec4,\r
- slang_spec_int,\r
- slang_spec_ivec2,\r
- slang_spec_ivec3,\r
- slang_spec_ivec4,\r
- slang_spec_float,\r
- slang_spec_vec2,\r
- slang_spec_vec3,\r
- slang_spec_vec4,\r
- slang_spec_mat2,\r
- slang_spec_mat3,\r
- slang_spec_mat4,\r
- slang_spec_sampler1D,\r
- slang_spec_sampler2D,\r
- slang_spec_sampler3D,\r
- slang_spec_samplerCube,\r
- slang_spec_sampler1DShadow,\r
- slang_spec_sampler2DShadow,\r
- slang_spec_struct,\r
- slang_spec_array\r
-} slang_type_specifier_type;\r
-\r
-typedef struct slang_type_specifier_\r
-{\r
- slang_type_specifier_type type;\r
- struct slang_struct_ *_struct; /* type: spec_struct */\r
- struct slang_type_specifier_ *_array; /* type: spec_array */\r
-} slang_type_specifier;\r
-\r
-GLvoid slang_type_specifier_ctr (slang_type_specifier *);\r
-GLvoid slang_type_specifier_dtr (slang_type_specifier *);\r
-GLboolean slang_type_specifier_copy (slang_type_specifier *, const slang_type_specifier *);\r
-GLboolean slang_type_specifier_equal (const slang_type_specifier *, const slang_type_specifier *);\r
-\r
-typedef struct slang_assembly_typeinfo_\r
-{\r
- GLboolean can_be_referenced;\r
- GLboolean is_swizzled;\r
- slang_swizzle swz;\r
- slang_type_specifier spec;\r
- GLuint array_len;\r
-} slang_assembly_typeinfo;\r
-\r
-GLboolean slang_assembly_typeinfo_construct (slang_assembly_typeinfo *);\r
-GLvoid slang_assembly_typeinfo_destruct (slang_assembly_typeinfo *);\r
-\r
-/*\r
- * Retrieves type information about an operation.\r
- * Returns GL_TRUE on success.\r
- * Returns GL_FALSE otherwise.\r
- */\r
-GLboolean _slang_typeof_operation (slang_assemble_ctx *, struct slang_operation_ *,\r
- slang_assembly_typeinfo *);\r
-GLboolean _slang_typeof_operation_ (struct slang_operation_ *, slang_assembly_name_space *,\r
- slang_assembly_typeinfo *, slang_atom_pool *);\r
-\r
-/*\r
- * Retrieves type of a function prototype, if one exists.\r
- * Returns GL_TRUE on success, even if the function was not found.\r
- * Returns GL_FALSE otherwise.\r
- */\r
-GLboolean _slang_typeof_function (slang_atom a_name, struct slang_operation_ *params,\r
- GLuint num_params, slang_assembly_name_space *, slang_type_specifier *spec, GLboolean *exists,\r
- slang_atom_pool *);\r
-\r
-GLboolean _slang_type_is_matrix (slang_type_specifier_type);\r
-\r
-GLboolean _slang_type_is_vector (slang_type_specifier_type);\r
-\r
-slang_type_specifier_type _slang_type_base (slang_type_specifier_type);\r
-\r
-GLuint _slang_type_dim (slang_type_specifier_type);\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif\r
-\r
+/*
+ * Mesa 3-D graphics library
+ * Version: 6.5
+ *
+ * Copyright (C) 2005-2006 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#if !defined SLANG_ASSEMBLE_TYPEINFO_H
+#define SLANG_ASSEMBLE_TYPEINFO_H
+
+#if defined __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * The basic shading language types (float, vec4, mat3, etc)
+ */
+typedef enum slang_type_specifier_type_
+{
+ slang_spec_void,
+ slang_spec_bool,
+ slang_spec_bvec2,
+ slang_spec_bvec3,
+ slang_spec_bvec4,
+ slang_spec_int,
+ slang_spec_ivec2,
+ slang_spec_ivec3,
+ slang_spec_ivec4,
+ slang_spec_float,
+ slang_spec_vec2,
+ slang_spec_vec3,
+ slang_spec_vec4,
+ slang_spec_mat2,
+ slang_spec_mat3,
+ slang_spec_mat4,
+ slang_spec_sampler1D,
+ slang_spec_sampler2D,
+ slang_spec_sampler3D,
+ slang_spec_samplerCube,
+ slang_spec_sampler1DShadow,
+ slang_spec_sampler2DShadow,
+ slang_spec_struct,
+ slang_spec_array
+} slang_type_specifier_type;
+
+
+/**
+ * Describes more sophisticated types, like structs and arrays.
+ */
+typedef struct slang_type_specifier_
+{
+ slang_type_specifier_type type;
+ struct slang_struct_ *_struct; /**< used if type == spec_struct */
+ struct slang_type_specifier_ *_array; /**< used if type == spec_array */
+} slang_type_specifier;
+
+
+extern GLvoid
+slang_type_specifier_ctr(slang_type_specifier *);
+
+extern GLvoid
+slang_type_specifier_dtr(slang_type_specifier *);
+
+extern GLboolean
+slang_type_specifier_copy(slang_type_specifier *, const slang_type_specifier *);
+
+extern GLboolean
+slang_type_specifier_equal(const slang_type_specifier *,
+ const slang_type_specifier *);
+
+
+typedef struct slang_assembly_typeinfo_
+{
+ GLboolean can_be_referenced;
+ GLboolean is_swizzled;
+ slang_swizzle swz;
+ slang_type_specifier spec;
+ GLuint array_len;
+} slang_assembly_typeinfo;
+
+extern GLboolean
+slang_assembly_typeinfo_construct(slang_assembly_typeinfo *);
+
+extern GLvoid
+slang_assembly_typeinfo_destruct(slang_assembly_typeinfo *);
+
+
+/**
+ * Retrieves type information about an operation.
+ * Returns GL_TRUE on success.
+ * Returns GL_FALSE otherwise.
+ */
+extern GLboolean
+_slang_typeof_operation(const slang_assemble_ctx *,
+ const struct slang_operation_ *,
+ slang_assembly_typeinfo *);
+
+extern GLboolean
+_slang_typeof_operation_(const struct slang_operation_ *,
+ const slang_assembly_name_space *,
+ slang_assembly_typeinfo *, slang_atom_pool *);
+
+/**
+ * Retrieves type of a function prototype, if one exists.
+ * Returns GL_TRUE on success, even if the function was not found.
+ * Returns GL_FALSE otherwise.
+ */
+extern GLboolean
+_slang_typeof_function(slang_atom a_name,
+ const struct slang_operation_ *params,
+ GLuint num_params, const slang_assembly_name_space *,
+ slang_type_specifier *spec, GLboolean *exists,
+ slang_atom_pool *);
+
+extern GLboolean
+_slang_type_is_matrix(slang_type_specifier_type);
+
+extern GLboolean
+_slang_type_is_vector(slang_type_specifier_type);
+
+extern slang_type_specifier_type
+_slang_type_base(slang_type_specifier_type);
+
+extern GLuint
+_slang_type_dim(slang_type_specifier_type);
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+