Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenslang_compile.h
Go to the documentation of this file.
00001 /* 00002 * Mesa 3-D graphics library 00003 * Version: 6.5 00004 * 00005 * Copyright (C) 2005-2006 Brian Paul All Rights Reserved. 00006 * 00007 * Permission is hereby granted, free of charge, to any person obtaining a 00008 * copy of this software and associated documentation files (the "Software"), 00009 * to deal in the Software without restriction, including without limitation 00010 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 00011 * and/or sell copies of the Software, and to permit persons to whom the 00012 * Software is furnished to do so, subject to the following conditions: 00013 * 00014 * The above copyright notice and this permission notice shall be included 00015 * in all copies or substantial portions of the Software. 00016 * 00017 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00018 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00019 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 00020 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 00021 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 00022 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00023 */ 00024 00025 #if !defined SLANG_COMPILE_H 00026 #define SLANG_COMPILE_H 00027 00028 #include "main/imports.h" 00029 #include "main/mtypes.h" 00030 #include "slang_typeinfo.h" 00031 #include "slang_compile_variable.h" 00032 #include "slang_compile_struct.h" 00033 #include "slang_compile_operation.h" 00034 #include "slang_compile_function.h" 00035 00036 #if defined __cplusplus 00037 extern "C" { 00038 #endif 00039 00040 typedef struct slang_name_space_ 00041 { 00042 struct slang_function_scope_ *funcs; 00043 struct slang_struct_scope_ *structs; 00044 struct slang_variable_scope_ *vars; 00045 } slang_name_space; 00046 00047 typedef enum slang_unit_type_ 00048 { 00049 SLANG_UNIT_FRAGMENT_SHADER, 00050 SLANG_UNIT_VERTEX_SHADER, 00051 SLANG_UNIT_FRAGMENT_BUILTIN, 00052 SLANG_UNIT_VERTEX_BUILTIN 00053 } slang_unit_type; 00054 00055 00056 typedef struct slang_code_unit_ 00057 { 00058 slang_variable_scope vars; 00059 slang_function_scope funs; 00060 slang_struct_scope structs; 00061 slang_unit_type type; 00062 struct slang_code_object_ *object; 00063 } slang_code_unit; 00064 00065 00066 extern GLvoid 00067 _slang_code_unit_ctr (slang_code_unit *, struct slang_code_object_ *); 00068 00069 extern GLvoid 00070 _slang_code_unit_dtr (slang_code_unit *); 00071 00072 #define SLANG_BUILTIN_CORE 0 00073 #define SLANG_BUILTIN_120_CORE 1 00074 #define SLANG_BUILTIN_COMMON 2 00075 #define SLANG_BUILTIN_TARGET 3 00076 00077 #define SLANG_BUILTIN_TOTAL 4 00078 00079 typedef struct slang_code_object_ 00080 { 00081 slang_code_unit builtin[SLANG_BUILTIN_TOTAL]; 00082 slang_code_unit unit; 00083 slang_atom_pool atompool; 00084 } slang_code_object; 00085 00086 extern GLvoid 00087 _slang_code_object_ctr (slang_code_object *); 00088 00089 extern GLvoid 00090 _slang_code_object_dtr (slang_code_object *); 00091 00092 extern GLboolean 00093 _slang_compile (GLcontext *ctx, struct gl_shader *shader); 00094 00095 #ifdef __cplusplus 00096 } 00097 #endif 00098 00099 #endif 00100 Generated on Sat May 26 2012 04:19:25 for ReactOS by
1.7.6.1
|