Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenprog_parameter.h
Go to the documentation of this file.
00001 /* 00002 * Mesa 3-D graphics library 00003 * Version: 7.3 00004 * 00005 * Copyright (C) 1999-2008 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 00031 #ifndef PROG_PARAMETER_H 00032 #define PROG_PARAMETER_H 00033 00034 #include "main/mtypes.h" 00035 #include "prog_statevars.h" 00036 00037 00042 #define PROG_PARAM_BIT_CENTROID 0x1 00043 #define PROG_PARAM_BIT_INVARIANT 0x2 00044 #define PROG_PARAM_BIT_FLAT 0x4 00045 #define PROG_PARAM_BIT_LINEAR 0x8 00047 00048 00049 00054 struct gl_program_parameter 00055 { 00056 const char *Name; 00057 enum register_file Type; 00058 GLenum DataType; 00059 GLuint Size; 00060 GLboolean Used; 00061 GLboolean Initialized; 00062 GLbitfield Flags; 00066 gl_state_index StateIndexes[STATE_LENGTH]; 00067 }; 00068 00069 00073 struct gl_program_parameter_list 00074 { 00075 GLuint Size; 00076 GLuint NumParameters; 00077 struct gl_program_parameter *Parameters; 00078 GLfloat (*ParameterValues)[4]; 00079 GLbitfield StateFlags; 00081 }; 00082 00083 00084 extern struct gl_program_parameter_list * 00085 _mesa_new_parameter_list(void); 00086 00087 extern void 00088 _mesa_free_parameter_list(struct gl_program_parameter_list *paramList); 00089 00090 extern struct gl_program_parameter_list * 00091 _mesa_clone_parameter_list(const struct gl_program_parameter_list *list); 00092 00093 extern struct gl_program_parameter_list * 00094 _mesa_combine_parameter_lists(const struct gl_program_parameter_list *a, 00095 const struct gl_program_parameter_list *b); 00096 00097 static INLINE GLuint 00098 _mesa_num_parameters(const struct gl_program_parameter_list *list) 00099 { 00100 return list ? list->NumParameters : 0; 00101 } 00102 00103 extern GLint 00104 _mesa_add_parameter(struct gl_program_parameter_list *paramList, 00105 enum register_file type, const char *name, 00106 GLuint size, GLenum datatype, const GLfloat *values, 00107 const gl_state_index state[STATE_LENGTH], 00108 GLbitfield flags); 00109 00110 extern GLint 00111 _mesa_add_named_parameter(struct gl_program_parameter_list *paramList, 00112 const char *name, const GLfloat values[4]); 00113 00114 extern GLint 00115 _mesa_add_named_constant(struct gl_program_parameter_list *paramList, 00116 const char *name, const GLfloat values[4], 00117 GLuint size); 00118 00119 extern GLint 00120 _mesa_add_unnamed_constant(struct gl_program_parameter_list *paramList, 00121 const GLfloat values[4], GLuint size, 00122 GLuint *swizzleOut); 00123 00124 extern GLint 00125 _mesa_add_uniform(struct gl_program_parameter_list *paramList, 00126 const char *name, GLuint size, GLenum datatype, 00127 const GLfloat *values); 00128 00129 extern void 00130 _mesa_use_uniform(struct gl_program_parameter_list *paramList, 00131 const char *name); 00132 00133 extern GLint 00134 _mesa_add_sampler(struct gl_program_parameter_list *paramList, 00135 const char *name, GLenum datatype); 00136 00137 extern GLint 00138 _mesa_add_varying(struct gl_program_parameter_list *paramList, 00139 const char *name, GLuint size, GLbitfield flags); 00140 00141 extern GLint 00142 _mesa_add_attribute(struct gl_program_parameter_list *paramList, 00143 const char *name, GLint size, GLenum datatype, GLint attrib); 00144 00145 extern GLint 00146 _mesa_add_state_reference(struct gl_program_parameter_list *paramList, 00147 const gl_state_index stateTokens[STATE_LENGTH]); 00148 00149 extern GLfloat * 00150 _mesa_lookup_parameter_value(const struct gl_program_parameter_list *paramList, 00151 GLsizei nameLen, const char *name); 00152 00153 extern GLint 00154 _mesa_lookup_parameter_index(const struct gl_program_parameter_list *paramList, 00155 GLsizei nameLen, const char *name); 00156 00157 extern GLboolean 00158 _mesa_lookup_parameter_constant(const struct gl_program_parameter_list *list, 00159 const GLfloat v[], GLuint vSize, 00160 GLint *posOut, GLuint *swizzleOut); 00161 00162 extern GLuint 00163 _mesa_longest_parameter_name(const struct gl_program_parameter_list *list, 00164 enum register_file type); 00165 00166 extern GLuint 00167 _mesa_num_parameters_of_type(const struct gl_program_parameter_list *list, 00168 enum register_file type); 00169 00170 00171 #endif /* PROG_PARAMETER_H */ Generated on Fri May 25 2012 04:18:46 for ReactOS by
1.7.6.1
|