ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

prog_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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.