Changeset 63939 in vbox for trunk/src/VBox/GuestHost/OpenGL/state_tracker
- Timestamp:
- Sep 22, 2016 7:58:05 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 110825
- Location:
- trunk/src/VBox/GuestHost/OpenGL/state_tracker
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/GuestHost/OpenGL/state_tracker/convert.py
r15532 r63939 4 4 # See the file LICENSE.txt for information on redistributing this software. 5 5 6 from __future__ import print_function 6 7 import sys 7 8 … … 17 18 apiutil.CopyrightC() 18 19 19 print 20 print(''' 20 21 #include "state/cr_statetypes.h" 21 22 … … 28 29 return d; 29 30 } 30 ''' 31 ''') 31 32 32 for k in gltypes.keys():33 for k in sorted(gltypes.keys()): 33 34 for i in range(1,5): 34 print 'static void __convert_%s%d (GLfloat *dst, const %s *src) {' % (k,i,gltypes[k]['type'])35 print('static void __convert_%s%d (GLfloat *dst, const %s *src) {' % (k,i,gltypes[k]['type'])) 35 36 if k == 'd': 36 37 for j in range(i-1): 37 print '\t*dst++ = (GLfloat) __read_double(src++);'38 print '\t*dst = (GLfloat) __read_double(src);'38 print('\t*dst++ = (GLfloat) __read_double(src++);') 39 print('\t*dst = (GLfloat) __read_double(src);') 39 40 else: 40 41 for j in range(i-1): 41 print '\t*dst++ = (GLfloat) *src++;';42 print '\t*dst = (GLfloat) *src;';43 print '}\n';42 print('\t*dst++ = (GLfloat) *src++;') 43 print('\t*dst = (GLfloat) *src;') 44 print('}\n') 44 45 45 46 scale = { … … 54 55 } 55 56 56 for k in gltypes.keys():57 for k in sorted(gltypes.keys()): 57 58 if k != 'f' and k != 'd' and k != 'l': 58 59 if k[0:1] == "N": … … 61 62 k2 = k 62 63 for i in range(1,5): 63 print 'static void __convert_rescale_%s%d (GLfloat *dst, const %s *src) {' % (k,i,gltypes[k2]['type'])64 print('static void __convert_rescale_%s%d (GLfloat *dst, const %s *src) {' % (k,i,gltypes[k2]['type'])) 64 65 for j in range(i-1): 65 print '\t*dst++ = ((GLfloat) *src++) / %s;' % scale[k2]66 print '\t*dst = ((GLfloat) *src) / %s;' % scale[k2]67 print '}\n'66 print('\t*dst++ = ((GLfloat) *src++) / %s;' % scale[k2]) 67 print('\t*dst = ((GLfloat) *src) / %s;' % scale[k2]) 68 print('}\n') 68 69 69 print 70 print(''' 70 71 71 72 static void __convert_boolean (GLboolean *dst, const GLboolean *src) { 72 73 *dst = *src; 73 74 } 74 ''' 75 ''') -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/dump_gen.py
r50041 r63939 1 from __future__ import print_function 1 2 import sys 2 3 … … 34 35 apiutil.CopyrightC() 35 36 36 print 37 print("""#include "cr_blitter.h" 37 38 #include "cr_spu.h" 38 39 #include "chromium.h" … … 52 53 53 54 #ifdef VBOX_WITH_CRDUMPER 54 """ 55 """) 55 56 56 57 from get_sizes import *; … … 69 70 # print "//%s" % prop 70 71 # 71 print 72 print(""" 72 73 static void crRecDumpPrintVal(CR_DUMPER *pDumper, struct nv_struct *pDesc, float *pfData) 73 74 { … … 94 95 { 95 96 GLboolean fEnabled; 96 """ 97 keys = params.keys() 98 keys.sort(); 99 100 for pname in keys: 101 print "\tfEnabled = pRec->pDispatch->IsEnabled(%s);" % pname 102 print "\tcrDmpStrF(pRec->pDumper, \"%s = %%d;\", fEnabled);" % pname 103 104 keys = extended_params.keys(); 105 keys.sort() 106 107 for pname in keys: 97 """) 98 for pname in sorted(params.keys()): 99 print("\tfEnabled = pRec->pDispatch->IsEnabled(%s);" % pname) 100 print("\tcrDmpStrF(pRec->pDumper, \"%s = %%d;\", fEnabled);" % pname) 101 102 for pname in sorted(extended_params.keys()): 108 103 (srctype,ifdef,fields) = extended_params[pname] 109 104 ext = ifdef[3:] # the extension name with the "GL_" prefix removed 110 105 ext = ifdef 111 print '#ifdef CR_%s' % ext112 print "\tfEnabled = pRec->pDispatch->IsEnabled(%s);" % pname113 print "\tcrDmpStrF(pRec->pDumper, \"%s = %%d;\", fEnabled);" % pname114 print '#endif /* CR_%s */' % ext106 print('#ifdef CR_%s' % ext) 107 print("\tfEnabled = pRec->pDispatch->IsEnabled(%s);" % pname) 108 print("\tcrDmpStrF(pRec->pDumper, \"%s = %%d;\", fEnabled);" % pname) 109 print('#endif /* CR_%s */' % ext) 115 110 116 111 #print "//missing enable props:" … … 124 119 # print "//%s" % prop 125 120 # 126 print 121 print(""" 127 122 } 128 123 #endif 129 """ 124 """) 130 125 131 126 texenv_mappings = { … … 184 179 ] 185 180 186 print 181 print(""" 187 182 void crRecDumpTexParam(CR_RECORDER *pRec, CRContext *ctx, GLenum enmTarget) 188 183 { … … 191 186 unsigned int cComponents; 192 187 crDmpStrF(pRec->pDumper, "==TEX_PARAM for target(0x%x)==", enmTarget); 193 """ 188 """) 194 189 for pname in texparam_names: 195 print "\tcComponents = crStateHlpComponentsCount(%s);" % pname196 print "\tAssert(cComponents <= RT_ELEMENTS(afBuf));"197 print "\tmemset(afBuf, 0, sizeof (afBuf));"198 print "\tpRec->pDispatch->GetTexParameterfv(enmTarget, %s, afBuf);" % pname199 print "\tcrDmpFormatArray(acBuf, sizeof (acBuf), \"%f\", sizeof (afBuf[0]), afBuf, cComponents);"200 print "\tcrDmpStrF(pRec->pDumper, \"%s = %%s;\", acBuf);" % pname201 print 190 print("\tcComponents = crStateHlpComponentsCount(%s);" % pname) 191 print("\tAssert(cComponents <= RT_ELEMENTS(afBuf));") 192 print("\tmemset(afBuf, 0, sizeof (afBuf));") 193 print("\tpRec->pDispatch->GetTexParameterfv(enmTarget, %s, afBuf);" % pname) 194 print("\tcrDmpFormatArray(acBuf, sizeof (acBuf), \"%f\", sizeof (afBuf[0]), afBuf, cComponents);") 195 print("\tcrDmpStrF(pRec->pDumper, \"%s = %%s;\", acBuf);" % pname) 196 print(""" 202 197 crDmpStrF(pRec->pDumper, "==Done TEX_PARAM for target(0x%x)==", enmTarget); 203 198 } 204 """ 205 206 print 199 """) 200 201 print(""" 207 202 void crRecDumpTexEnv(CR_RECORDER *pRec, CRContext *ctx) 208 203 { … … 211 206 unsigned int cComponents; 212 207 crDmpStrF(pRec->pDumper, "==TEX_ENV=="); 213 """ 214 215 keys = texenv_mappings.keys() 216 keys.sort(); 217 218 for target in keys: 219 print "\tcrDmpStrF(pRec->pDumper, \"===%s===\");" % target 208 """) 209 210 for target in sorted(texenv_mappings.keys()): 211 print("\tcrDmpStrF(pRec->pDumper, \"===%s===\");" % target) 220 212 values = texenv_mappings[target] 221 213 for pname in values: 222 print "\tcComponents = crStateHlpComponentsCount(%s);" % pname223 print "\tAssert(cComponents <= RT_ELEMENTS(afBuf));"224 print "\tmemset(afBuf, 0, sizeof (afBuf));"225 print "\tpRec->pDispatch->GetTexEnvfv(%s, %s, afBuf);" % (target, pname)226 print "\tcrDmpFormatArray(acBuf, sizeof (acBuf), \"%f\", sizeof (afBuf[0]), afBuf, cComponents);"227 print "\tcrDmpStrF(pRec->pDumper, \"%s = %%s;\", acBuf);" % pname228 print "\tcrDmpStrF(pRec->pDumper, \"===Done %s===\");" % target229 print 214 print("\tcComponents = crStateHlpComponentsCount(%s);" % pname) 215 print("\tAssert(cComponents <= RT_ELEMENTS(afBuf));") 216 print("\tmemset(afBuf, 0, sizeof (afBuf));") 217 print("\tpRec->pDispatch->GetTexEnvfv(%s, %s, afBuf);" % (target, pname)) 218 print("\tcrDmpFormatArray(acBuf, sizeof (acBuf), \"%f\", sizeof (afBuf[0]), afBuf, cComponents);") 219 print("\tcrDmpStrF(pRec->pDumper, \"%s = %%s;\", acBuf);" % pname) 220 print("\tcrDmpStrF(pRec->pDumper, \"===Done %s===\");" % target) 221 print(""" 230 222 crDmpStrF(pRec->pDumper, "==Done TEX_ENV=="); 231 223 } 232 """ 233 234 235 print 224 """) 225 226 227 print(""" 236 228 void crRecDumpTexGen(CR_RECORDER *pRec, CRContext *ctx) 237 229 { … … 240 232 unsigned int cComponents; 241 233 crDmpStrF(pRec->pDumper, "==TEX_GEN=="); 242 """ 234 """) 243 235 244 236 for coord in texgen_coords: 245 print "\tcrDmpStrF(pRec->pDumper, \"===%s===\");" % coord237 print("\tcrDmpStrF(pRec->pDumper, \"===%s===\");" % coord) 246 238 for pname in texgen_names: 247 print "\tcComponents = crStateHlpComponentsCount(%s);" % pname248 print "\tAssert(cComponents <= RT_ELEMENTS(afBuf));"249 print "\tmemset(afBuf, 0, sizeof (afBuf));"250 print "\tpRec->pDispatch->GetTexGendv(%s, %s, afBuf);" % (coord, pname)251 print "\tcrDmpFormatArray(acBuf, sizeof (acBuf), \"%f\", sizeof (afBuf[0]), afBuf, cComponents);"252 print "\tcrDmpStrF(pRec->pDumper, \"%s = %%s;\", acBuf);" % pname253 print "\tcrDmpStrF(pRec->pDumper, \"===Done %s===\");" % coord254 print 239 print("\tcComponents = crStateHlpComponentsCount(%s);" % pname) 240 print("\tAssert(cComponents <= RT_ELEMENTS(afBuf));") 241 print("\tmemset(afBuf, 0, sizeof (afBuf));") 242 print("\tpRec->pDispatch->GetTexGendv(%s, %s, afBuf);" % (coord, pname)) 243 print("\tcrDmpFormatArray(acBuf, sizeof (acBuf), \"%f\", sizeof (afBuf[0]), afBuf, cComponents);") 244 print("\tcrDmpStrF(pRec->pDumper, \"%s = %%s;\", acBuf);" % pname) 245 print("\tcrDmpStrF(pRec->pDumper, \"===Done %s===\");" % coord) 246 print(""" 255 247 crDmpStrF(pRec->pDumper, "==Done TEX_GEN=="); 256 248 } 257 """ 249 """) -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/gendiffcode.py
r33540 r63939 4 4 # See the file LICENSE.txt for information on redistributing this software 5 5 6 from __future__ import print_function 6 7 import sys 7 8 … … 10 11 Name = sys.argv[2] 11 12 12 print 13 print("""/* This code is AUTOGENERATED!!! */ 13 14 14 15 #include "state.h" 15 #include "state_internals.h\"""" 16 17 print 16 #include "state_internals.h\"""") 17 18 print(""" 18 19 void crState%(Name)sDiff(CR%(Name)sBits *b, CRbitvalue *bitID, 19 20 CRContext *fromCtx, CRContext *toCtx) 20 21 { 21 22 CR%(Name)sState *from = &(fromCtx->%(name)s); 22 CR%(Name)sState *to = &(toCtx->%(name)s);"""%vars() 23 CR%(Name)sState *to = &(toCtx->%(name)s);"""%vars()) 23 24 gendiffcode("state_%s.txt"%(name.lower()), name, docopy=1, doinvalid=0) 24 print 25 print("""} 25 26 26 27 void crState%(Name)sSwitch(CR%(Name)sBits *b, CRbitvalue *bitID, … … 28 29 { 29 30 CR%(Name)sState *from = &(fromCtx->%(name)s); 30 CR%(Name)sState *to = &(toCtx->%(name)s);"""%vars() 31 CR%(Name)sState *to = &(toCtx->%(name)s);"""%vars()) 31 32 gendiffcode("state_%s.txt"%(Name.lower()), Name, docopy=0, doinvalid=1) 32 print "}\n"33 print("}\n") 33 34 34 35 def gendiffcode(fname, state_name, docopy, doinvalid): … … 55 56 FILE = open(sys.argv[3]+"/"+fname, "r") 56 57 57 print 58 print(""" unsigned int j, i; 58 59 CRbitvalue nbitID[CR_MAX_BITARRAY]; 59 60 for (j=0;j<CR_MAX_BITARRAY;j++) 60 61 nbitID[j] = ~bitID[j]; 61 i = 0; /* silence compiler */""" 62 i = 0; /* silence compiler */""") 62 63 63 64 import re 64 for line in FILE .xreadlines():65 for line in FILE: 65 66 line = line.rstrip() 66 67 … … 87 88 if re.search("}", line): 88 89 tab = tab[:-1] 89 print tab+text90 print(tab+text) 90 91 if re.search("{", line): 91 92 tab = tab+"\t" … … 109 110 if re.search("%flush", line): 110 111 if current_guard != "": 111 print tab+"CLEARDIRTY(%(bit)s->%(current_guard)s, nbitID);"%vars()112 tab = tab[:-1] 113 print tab+"}"112 print(tab+"CLEARDIRTY(%(bit)s->%(current_guard)s, nbitID);"%vars()) 113 tab = tab[:-1] 114 print(tab+"}") 114 115 if docopy and current_dependency != "": 115 116 tab = tab[:-1] 116 print tab+"}"117 print(tab+"}") 117 118 current_guard = "" 118 119 current_dependency = "" … … 127 128 ## Close the guardbit and dependency 128 129 if current_guard != "" and current_guard != guardbit: 129 print tab+"CLEARDIRTY(%(bit)s->%(current_guard)s, nbitID);"%vars()130 print(tab+"CLEARDIRTY(%(bit)s->%(current_guard)s, nbitID);"%vars()) 130 131 tab = tab[:-1] 131 print tab+"}"132 print(tab+"}") 132 133 if docopy and current_dependency != "" and current_dependency != dependency: 133 134 tab = tab[:-1] 134 print tab+"}"135 print(tab+"}") 135 136 136 137 ## Open the dependency if 137 138 if docopy and current_dependency != dependency and dependency != "": 138 print tab+"if (%(target)s->%(dependency)s)\n%(tab)s{"%vars()139 print(tab+"if (%(target)s->%(dependency)s)\n%(tab)s{"%vars()) 139 140 tab = tab+"\t" 140 141 current_dependency = dependency … … 142 143 ## Open the guard if 143 144 if docopy and current_dependency != dependency and dependency != "": 144 print tab+"if ($(target)s->%(dependency)s)\n%(tab)s{"%vars()145 print(tab+"if ($(target)s->%(dependency)s)\n%(tab)s{"%vars()) 145 146 tab = tab+"\t" 146 147 147 148 if current_guard != guardbit and guardbit != "": 148 print tab+"if (CHECKDIRTY(%(bit)s->%(guardbit)s, bitID))\n%(tab)s{"%vars()149 print(tab+"if (CHECKDIRTY(%(bit)s->%(guardbit)s, bitID))\n%(tab)s{"%vars()) 149 150 tab = tab+"\t" 150 151 if members[0] != "*" and guardbit[0:6] == "enable": 151 print tab+"glAble able[2];"152 print tab+"able[0] = diff_api.Disable;"153 print tab+"able[1] = diff_api.Enable;"152 print(tab+"glAble able[2];") 153 print(tab+"able[0] = diff_api.Disable;") 154 print(tab+"able[1] = diff_api.Enable;") 154 155 155 156 current_dependency = dependency … … 158 159 ## Handle text dump 159 160 if members[0] == "*": 160 print tab+members[1:]161 print(tab+members[1:]) 161 162 else: 162 163 ## Parse the members variable … … 181 182 for elem in elems: 182 183 if first != 1: 183 print " ||\n"+tab+" ",184 print(" ||\n"+tab+" ", end="") 184 185 first = 0 185 186 sys.stdout.write("%(current)s->%(elem)s != %(target)s->%(elem)s"%vars()) 186 print ")\n"+tab+"{"187 print(")\n"+tab+"{") 187 188 tab = tab+"\t" 188 189 … … 190 191 if func[0] == "*": 191 192 func = func[1:] 192 print tab+func193 print(tab+func) 193 194 else: 194 195 if func != "": 195 196 ## Call the glhw function 196 197 if guardbit[0:6] == "enable": 197 print tab+"able["+target+"->"+elems[0]+"]("+func+");"198 print(tab+"able["+target+"->"+elems[0]+"]("+func+");") 198 199 elif guardbit == "extensions": 199 print tab+"crState$state_name",200 print(tab+"crState$state_name",end="") 200 201 if docopy == 1: 201 print "Diff",202 print("Diff",end="") 202 203 else: 203 print "Switch",204 print "Extensions( from, to );"204 print("Switch",end="") 205 print("Extensions( from, to );") 205 206 else: 206 207 funcargs = re.split(",", func) … … 211 212 v_type = func[-2:-1] 212 213 num_elems = len(elems) 213 print tab+v_types[v_type]+" varg["+str(num_elems)+"];"214 print(tab+v_types[v_type]+" varg["+str(num_elems)+"];") 214 215 i = 0 215 216 for elem in elems: 216 print tab+"varg["+str(i)+"] = "+target+"->"+elem+";"217 print(tab+"varg["+str(i)+"] = "+target+"->"+elem+";") 217 218 i += 1 218 219 elif func[-3:] == "vNV": 219 220 v_type = func[-4:-3] 220 221 num_elems = len(elems) 221 print tab+v_types[v_type]+" varg["+str(num_elems)+"];"222 print(tab+v_types[v_type]+" varg["+str(num_elems)+"];") 222 223 i = 0 223 224 for elem in elems: 224 print tab+"varg["+str(i)+"] = "+target+"->"+elem+";"225 print(tab+"varg["+str(i)+"] = "+target+"->"+elem+";") 225 226 i += 1 226 227 … … 239 240 first = 0 240 241 sys.stdout.write(target+"->"+elem) 241 print ");"242 print(");") 242 243 243 244 ## Do the sync if necessary 244 245 if docopy and guardbit != "extensions": 245 246 for elem in mainelem: 246 print tab+current+"->"+elem+" = "+target+"->"+elem+";"247 print(tab+current+"->"+elem+" = "+target+"->"+elem+";") 247 248 248 249 ## Do the clear if necessary 249 250 if doinvalid: 250 251 if guardbit != "": 251 print tab+"FILLDIRTY(%(bit)s->%(guardbit)s);"%vars()252 print tab+"FILLDIRTY(%(bit)s->dirty);"%vars()252 print(tab+"FILLDIRTY(%(bit)s->%(guardbit)s);"%vars()) 253 print(tab+"FILLDIRTY(%(bit)s->dirty);"%vars()) 253 254 if extrabit != "": 254 print tab+"FILLDIRTY(%(extrabit)s->dirty);"%vars()255 print(tab+"FILLDIRTY(%(extrabit)s->dirty);"%vars()) 255 256 256 257 ## Close the compare 257 258 if guardbit != "extensions": 258 259 tab = tab[:-1] 259 print tab+"}"260 print(tab+"}") 260 261 261 262 ## Do final closures 262 263 if current_guard != "": 263 print tab+"CLEARDIRTY(%(bit)s->%(current_guard)s, nbitID);"%vars()264 print(tab+"CLEARDIRTY(%(bit)s->%(current_guard)s, nbitID);"%vars()) 264 265 tab = tab[:-1] 265 print tab+"}"266 print(tab+"}") 266 267 if docopy and current_dependency != "": 267 268 tab = tab[:-1] 268 print tab+"} /*%(current_dependency)s*/"%vars()269 270 print tab+"CLEARDIRTY(%(bit)s->dirty, nbitID);"%vars()269 print(tab+"} /*%(current_dependency)s*/"%vars()) 270 271 print(tab+"CLEARDIRTY(%(bit)s->dirty, nbitID);"%vars()) 271 272 272 273 main() -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/get_components.py
r50041 r63939 3 3 # 4 4 # See the file LICENSE.txt for information on redistributing this software. 5 6 from __future__ import print_function 5 7 6 8 num_components = { … … 114 116 } 115 117 116 print 118 print("""unsigned int crStateHlpComponentsCount( GLenum pname ) 117 119 { 118 120 switch( pname ) 119 121 { 120 """ 121 comps = num_components.keys(); 122 comps.sort(); 123 for comp in comps: 124 print '\t\t\tcase %s: return %d;' % (comp,num_components[comp]) 122 """) 123 for comp in sorted(num_components.keys()): 124 print('\t\t\tcase %s: return %d;' % (comp,num_components[comp])) 125 125 126 comps = num_extended_components.keys(); 127 comps.sort(); 128 for comp in comps: 126 for comp in sorted(num_extended_components.keys()): 129 127 (nc, ifdef) = num_extended_components[comp] 130 print '#ifdef %s' % ifdef131 print '\t\t\tcase %s: return %d;' % (comp,nc)132 print '#endif /* %s */' % ifdef128 print('#ifdef %s' % ifdef) 129 print('\t\t\tcase %s: return %d;' % (comp,nc)) 130 print('#endif /* %s */' % ifdef) 133 131 134 print 132 print(""" 135 133 default: 136 134 crError( "Unknown parameter name in crStateHlpComponentsCount: %d", (int) pname ); … … 140 138 return 0; 141 139 } 142 """ 140 """) 143 141 144 142 -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_current.py
r51319 r63939 4 4 # See the file LICENSE.txt for information on redistributing this software. 5 5 6 from __future__ import print_function 6 7 import sys 7 8 … … 11 12 apiutil.CopyrightC() 12 13 13 print 14 print(''' 14 15 #include "state/cr_currentpointers.h" 15 16 #include "state.h" … … 22 23 23 24 typedef void (*convert_func) (GLfloat *, const unsigned char *); 24 ''' 25 ''') 25 26 26 27 import convert 27 28 28 for k in current_fns.keys():29 for k in sorted(current_fns.keys()): 29 30 name = k 30 31 name = '%s%s' % (k[:1].lower(),k[1:]) … … 32 33 num_members = len(current_fns[k]['default']) + 1 33 34 34 print '#define VPINCH_CONVERT_%s(op,data,dst) \\' % ucname35 print '{\\'36 print '\tGLfloat vdata[%d] = {' % num_members,35 print('#define VPINCH_CONVERT_%s(op,data,dst) \\' % ucname) 36 print('{\\') 37 print('\tGLfloat vdata[%d] = {' % num_members, end=' ') 37 38 38 39 ## Copy dst data into vdata 39 40 i = 0; 40 41 for defaultvar in current_fns[k]['default']: 41 print '%d' % defaultvar,42 print('%d' % defaultvar, end=' ') 42 43 if i != num_members: 43 print ',',44 print(',', end=' ') 44 45 i += 1 45 print '};\\'46 47 print '\tswitch (op) { \\'46 print('};\\') 47 48 print('\tswitch (op) { \\') 48 49 for type in current_fns[k]['types']: 49 50 if type[0:1] == "N": … … 55 56 uctype = type.upper() 56 57 if ucname == 'EDGEFLAG': 57 print '\tcase CR_%s_OPCODE: \\' % ucname58 print('\tcase CR_%s_OPCODE: \\' % ucname) 58 59 else: 59 print '\tcase CR_%s%d%s_OPCODE: \\' % (ucname,size,uctype)60 print('\tcase CR_%s%d%s_OPCODE: \\' % (ucname,size,uctype)) 60 61 61 62 if (ucname == 'COLOR' or ucname == 'NORMAL' or ucname == 'SECONDARYCOLOR' or normalize) and type != 'f' and type != 'd': 62 print '\t\t__convert_rescale_%s%d (vdata, (%s *) (data)); \\' % (type,size,gltypes[type]['type'])63 print('\t\t__convert_rescale_%s%d (vdata, (%s *) (data)); \\' % (type,size,gltypes[type]['type'])) 63 64 else: 64 print '\t\t__convert_%s%d (vdata, (%s *) (data)); \\' % (type,size,gltypes[type]['type'])65 print '\t\tbreak; \\'66 67 print '\tdefault: \\'68 print '\t\tcrSimpleError ( "Unknown opcode in VPINCH_CONVERT_%s" ); \\' % ucname69 print '\t}\\'65 print('\t\t__convert_%s%d (vdata, (%s *) (data)); \\' % (type,size,gltypes[type]['type'])) 66 print('\t\tbreak; \\') 67 68 print('\tdefault: \\') 69 print('\t\tcrSimpleError ( "Unknown opcode in VPINCH_CONVERT_%s" ); \\' % ucname) 70 print('\t}\\') 70 71 71 72 i = 0 72 73 for member in current_fns[k]['members']: 73 print '\t(dst).%s = vdata[%d];\\' % (member,i)74 print('\t(dst).%s = vdata[%d];\\' % (member,i)) 74 75 i += 1 75 76 76 print '}\n'77 78 print 77 print('}\n') 78 79 print(''' 79 80 80 81 void crStateCurrentRecover( void ) … … 187 188 c->colorIndexPre = c->colorIndex; 188 189 189 ''' 190 191 for k in current_fns.keys():192 print '\t/* %s */' % k193 print '\tv=NULL;'190 ''') 191 192 for k in sorted(current_fns.keys()): 193 print('\t/* %s */' % k) 194 print('\tv=NULL;') 194 195 name = '%s%s' % (k[:1].lower(),k[1:]) 195 196 196 197 indent = "" 197 if current_fns[k].has_key( 'array' ):198 print '\tfor (i = 0 ; i < %s ; i++)' % current_fns[k]['array']199 print '\t{'198 if 'array' in current_fns[k]: 199 print('\tfor (i = 0 ; i < %s ; i++)' % current_fns[k]['array']) 200 print('\t{') 200 201 indent += "\t" 201 202 for type in current_fns[k]['types']: … … 208 209 for size in current_fns[k]['sizes']: 209 210 ptr = '%s->%s%d' % (name, type, size ) 210 if current_fns[k].has_key( 'array' ):211 if 'array' in current_fns[k]: 211 212 ptr += "[i]" 212 print '%s\tif (v < %s)' % (indent, ptr)213 print '%s\t{' % indent214 print '%s\t\tv = %s;' % (indent, ptr)213 print('%s\tif (v < %s)' % (indent, ptr)) 214 print('%s\t{' % indent) 215 print('%s\t\tv = %s;' % (indent, ptr)) 215 216 if (k == 'Color' or k == 'Normal' or k == 'SecondaryColor' or normalized) and type != 'f' and type != 'd' and type != 'l': 216 print '%s\t\tconvert = (convert_func) __convert_rescale_%s%d;' % (indent,type,size)217 print('%s\t\tconvert = (convert_func) __convert_rescale_%s%d;' % (indent,type,size)) 217 218 else: 218 print '%s\t\tconvert = (convert_func) __convert_%s%d;' % (indent,type,size)219 print '%s\t}' % indent220 print ''221 print '%s\tif (v != NULL) {' % indent222 if current_fns[k].has_key( 'array' ):219 print('%s\t\tconvert = (convert_func) __convert_%s%d;' % (indent,type,size)) 220 print('%s\t}' % indent) 221 print('') 222 print('%s\tif (v != NULL) {' % indent) 223 if 'array' in current_fns[k]: 223 224 if k == 'TexCoord': 224 print '%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_TEX0 + i], %s_default);' % (indent,name)225 print('%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_TEX0 + i], %s_default);' % (indent,name)) 225 226 else: 226 print '%s\t\tCOPY_4V(c->%s[i], %s_default);' % (indent,name,name)227 print('%s\t\tCOPY_4V(c->%s[i], %s_default);' % (indent,name,name)) 227 228 else: 228 229 if k == 'Normal': 229 print '%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_NORMAL], %s_default);' % (indent,name)230 print('%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_NORMAL], %s_default);' % (indent,name)) 230 231 elif k == 'FogCoord': 231 print '%s\t\tc->vertexAttrib[VERT_ATTRIB_FOG][0] = %s_default;' % (indent,name)232 print('%s\t\tc->vertexAttrib[VERT_ATTRIB_FOG][0] = %s_default;' % (indent,name)) 232 233 elif k == 'Color': 233 print '%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_COLOR0], %s_default);' % (indent,name)234 print('%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_COLOR0], %s_default);' % (indent,name)) 234 235 elif k == 'SecondaryColor': 235 print '%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_COLOR1], %s_default);' % (indent,name)236 print('%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_COLOR1], %s_default);' % (indent,name)) 236 237 elif k == 'TexCoord': 237 print '%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_TEX0], %s_default);' % (indent,name)238 print('%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_TEX0], %s_default);' % (indent,name)) 238 239 elif k == 'Index': 239 print '%s\t\tc->colorIndex = %s_default;' % (indent,name)240 print('%s\t\tc->colorIndex = %s_default;' % (indent,name)) 240 241 elif k == 'EdgeFlag': 241 print '%s\t\tc->edgeFlag = %s_default;' % (indent,name)242 print('%s\t\tc->edgeFlag = %s_default;' % (indent,name)) 242 243 else: 243 print '%s\t\tc->%s = %s_default;' % (indent,name,name)244 print('%s\t\tc->%s = %s_default;' % (indent,name,name)) 244 245 if k == 'EdgeFlag': 245 print '%s\t\t__convert_boolean (&c->edgeFlag, v);' % (indent)246 print('%s\t\t__convert_boolean (&c->edgeFlag, v);' % (indent)) 246 247 dirtyVar = 'cb->edgeFlag' 247 248 elif k == 'Normal': 248 print '%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_NORMAL][0]), v);' % (indent)249 print('%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_NORMAL][0]), v);' % (indent)) 249 250 dirtyVar = 'cb->vertexAttrib[VERT_ATTRIB_NORMAL]' 250 251 elif k == 'TexCoord': 251 print '%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_TEX0 + i][0]), v);' % (indent)252 print('%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_TEX0 + i][0]), v);' % (indent)) 252 253 dirtyVar = 'cb->vertexAttrib[VERT_ATTRIB_TEX0 + i]' 253 254 elif k == 'Color': 254 print '%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_COLOR0][0]), v);' % (indent)255 print('%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_COLOR0][0]), v);' % (indent)) 255 256 dirtyVar = 'cb->vertexAttrib[VERT_ATTRIB_COLOR0]' 256 257 elif k == 'Index': 257 print '%s\t\tconvert(&(c->colorIndex), v);' % (indent)258 print('%s\t\tconvert(&(c->colorIndex), v);' % (indent)) 258 259 dirtyVar = 'cb->colorIndex' 259 260 elif k == 'SecondaryColor': 260 print '%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_COLOR1][0]), v);' % (indent)261 print('%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_COLOR1][0]), v);' % (indent)) 261 262 dirtyVar = 'cb->vertexAttrib[VERT_ATTRIB_COLOR1]' 262 263 elif k == 'FogCoord': 263 print '%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_FOG][0]), v);' % (indent)264 print('%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_FOG][0]), v);' % (indent)) 264 265 dirtyVar = 'cb->vertexAttrib[VERT_ATTRIB_FOG]' 265 266 elif k == 'VertexAttrib': 266 print '%s\t\tconvert(&(c->vertexAttrib[i][0]), v);' % (indent)267 print('%s\t\tconvert(&(c->vertexAttrib[i][0]), v);' % (indent)) 267 268 dirtyVar = 'cb->vertexAttrib[i]' 268 269 else: 269 270 assert 0 # should never get here 270 271 271 print '%s\t\tDIRTY(%s, nbitID);' % (indent, dirtyVar)272 print('%s\t\tDIRTY(%s, nbitID);' % (indent, dirtyVar)) 272 273 273 274 # if current_fns[k].has_key( 'array' ): … … 278 279 279 280 280 print '%s\t\tDIRTY(cb->dirty, nbitID);' % indent281 print '%s\t}' % indent282 if current_fns[k].has_key( 'array' ):283 print '%s\t%s->ptr[i] = v;' % (indent, name)281 print('%s\t\tDIRTY(cb->dirty, nbitID);' % indent) 282 print('%s\t}' % indent) 283 if 'array' in current_fns[k]: 284 print('%s\t%s->ptr[i] = v;' % (indent, name )) 284 285 else: 285 print '%s\t%s->ptr = v;' % (indent, name)286 if current_fns[k].has_key( 'array' ):287 print '\t}'288 print '}'289 290 print 286 print('%s\t%s->ptr = v;' % (indent, name )) 287 if 'array' in current_fns[k]: 288 print('\t}') 289 print('}') 290 291 print(''' 291 292 292 293 void crStateCurrentRecoverNew(CRContext *g, CRCurrentStatePointers *current) … … 365 366 366 367 367 ''' 368 369 for k in current_fns_new.keys():370 print '\t/* %s */' % k371 print '\tif (current->changed%s)' % k372 print '\t{'373 print '\t\tv=NULL;'368 ''') 369 370 for k in sorted(current_fns_new.keys()): 371 print('\t/* %s */' % k) 372 print('\tif (current->changed%s)' % k) 373 print('\t{') 374 print('\t\tv=NULL;') 374 375 name = '%s%s' % (k[:1].lower(),k[1:]) 375 376 376 377 indent = "" 377 if current_fns_new[k].has_key( 'array' ):378 print '\t\tfor (i = 0 ; i < %s ; i++)' % current_fns_new[k]['array']379 print '\t\t{'378 if 'array' in current_fns_new[k]: 379 print('\t\tfor (i = 0 ; i < %s ; i++)' % current_fns_new[k]['array']) 380 print('\t\t{') 380 381 indent += "\t\t" 381 print '\t\tif (!(current->changed%s & (1 << i))) continue;' % k382 print('\t\tif (!(current->changed%s & (1 << i))) continue;' % k) 382 383 for type in current_fns_new[k]['types']: 383 384 if type[0:1] == "N": … … 389 390 for size in current_fns_new[k]['sizes']: 390 391 ptr = '%s->%s%d' % (name, type, size ) 391 if current_fns_new[k].has_key( 'array' ):392 if 'array' in current_fns_new[k]: 392 393 ptr += "[i]" 393 print '#ifdef DEBUG_misha'394 print '%s\tif (%s)' % (indent, ptr)395 print '%s\t{' % (indent)396 print '%s\t\tuint32_t *pTst = (uint32_t*)(%s);' % (indent, ptr)397 print '%s\t\t--pTst;' % (indent)398 print '%s\t\tAssert((*pTst) == i);' % (indent)399 print '%s\t}' % (indent)400 print '#endif'401 print '%s\tif (v < %s)' % (indent, ptr)402 print '%s\t{' % indent403 print '%s\t\tv = %s;' % (indent, ptr)394 print('#ifdef DEBUG_misha') 395 print('%s\tif (%s)' % (indent, ptr)) 396 print('%s\t{' % (indent)) 397 print('%s\t\tuint32_t *pTst = (uint32_t*)(%s);' % (indent, ptr)) 398 print('%s\t\t--pTst;' % (indent)) 399 print('%s\t\tAssert((*pTst) == i);' % (indent)) 400 print('%s\t}' % (indent)) 401 print('#endif') 402 print('%s\tif (v < %s)' % (indent, ptr)) 403 print('%s\t{' % indent) 404 print('%s\t\tv = %s;' % (indent, ptr)) 404 405 if (k == 'Color' or k == 'Normal' or k == 'SecondaryColor' or normalized) and type != 'f' and type != 'd' and type != 'l': 405 print '%s\t\tconvert = (convert_func) __convert_rescale_%s%d;' % (indent,type,size)406 print('%s\t\tconvert = (convert_func) __convert_rescale_%s%d;' % (indent,type,size)) 406 407 else: 407 print '%s\t\tconvert = (convert_func) __convert_%s%d;' % (indent,type,size)408 print '%s\t}' % indent409 print ''410 print '%s\tif (v != NULL) {' % indent411 if current_fns_new[k].has_key( 'array' ):408 print('%s\t\tconvert = (convert_func) __convert_%s%d;' % (indent,type,size)) 409 print('%s\t}' % indent) 410 print('') 411 print('%s\tif (v != NULL) {' % indent) 412 if 'array' in current_fns_new[k]: 412 413 if k == 'TexCoord': 413 print '%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_TEX0 + i], %s_default);' % (indent,name)414 print('%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_TEX0 + i], %s_default);' % (indent,name)) 414 415 else: 415 print '%s\t\tCOPY_4V(c->%s[i], %s_default);' % (indent,name,name)416 print('%s\t\tCOPY_4V(c->%s[i], %s_default);' % (indent,name,name)) 416 417 else: 417 418 if k == 'Normal': 418 print '%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_NORMAL], %s_default);' % (indent,name)419 print('%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_NORMAL], %s_default);' % (indent,name)) 419 420 elif k == 'FogCoord': 420 print '%s\t\tc->vertexAttrib[VERT_ATTRIB_FOG][0] = %s_default;' % (indent,name)421 print('%s\t\tc->vertexAttrib[VERT_ATTRIB_FOG][0] = %s_default;' % (indent,name)) 421 422 elif k == 'Color': 422 print '%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_COLOR0], %s_default);' % (indent,name)423 print('%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_COLOR0], %s_default);' % (indent,name)) 423 424 elif k == 'SecondaryColor': 424 print '%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_COLOR1], %s_default);' % (indent,name)425 print('%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_COLOR1], %s_default);' % (indent,name)) 425 426 elif k == 'TexCoord': 426 print '%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_TEX0], %s_default);' % (indent,name)427 print('%s\t\tCOPY_4V(c->vertexAttrib[VERT_ATTRIB_TEX0], %s_default);' % (indent,name)) 427 428 elif k == 'Index': 428 print '%s\t\tc->colorIndex = %s_default;' % (indent,name)429 print('%s\t\tc->colorIndex = %s_default;' % (indent,name)) 429 430 elif k == 'EdgeFlag': 430 print '%s\t\tc->edgeFlag = %s_default;' % (indent,name)431 print('%s\t\tc->edgeFlag = %s_default;' % (indent,name)) 431 432 else: 432 print '%s\t\tc->%s = %s_default;' % (indent,name,name)433 print('%s\t\tc->%s = %s_default;' % (indent,name,name)) 433 434 if k == 'EdgeFlag': 434 print '%s\t\t__convert_boolean (&c->edgeFlag, v);' % (indent)435 print('%s\t\t__convert_boolean (&c->edgeFlag, v);' % (indent)) 435 436 dirtyVar = 'cb->edgeFlag' 436 437 elif k == 'Normal': 437 print '%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_NORMAL][0]), v);' % (indent)438 print('%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_NORMAL][0]), v);' % (indent)) 438 439 dirtyVar = 'cb->vertexAttrib[VERT_ATTRIB_NORMAL]' 439 440 elif k == 'TexCoord': 440 print '%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_TEX0 + i][0]), v);' % (indent)441 print('%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_TEX0 + i][0]), v);' % (indent)) 441 442 dirtyVar = 'cb->vertexAttrib[VERT_ATTRIB_TEX0 + i]' 442 443 elif k == 'Color': 443 print '%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_COLOR0][0]), v);' % (indent)444 print('%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_COLOR0][0]), v);' % (indent)) 444 445 dirtyVar = 'cb->vertexAttrib[VERT_ATTRIB_COLOR0]' 445 446 elif k == 'Index': 446 print '%s\t\tconvert(&(c->colorIndex), v);' % (indent)447 print('%s\t\tconvert(&(c->colorIndex), v);' % (indent)) 447 448 dirtyVar = 'cb->colorIndex' 448 449 elif k == 'SecondaryColor': 449 print '%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_COLOR1][0]), v);' % (indent)450 print('%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_COLOR1][0]), v);' % (indent)) 450 451 dirtyVar = 'cb->vertexAttrib[VERT_ATTRIB_COLOR1]' 451 452 elif k == 'FogCoord': 452 print '%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_FOG][0]), v);' % (indent)453 print('%s\t\tconvert(&(c->vertexAttrib[VERT_ATTRIB_FOG][0]), v);' % (indent)) 453 454 dirtyVar = 'cb->vertexAttrib[VERT_ATTRIB_FOG]' 454 455 elif k == 'VertexAttrib': 455 print '%s\t\tconvert(&(c->vertexAttrib[i][0]), v);' % (indent)456 print('%s\t\tconvert(&(c->vertexAttrib[i][0]), v);' % (indent)) 456 457 dirtyVar = 'cb->vertexAttrib[i]' 457 458 else: 458 459 assert 0 # should never get here 459 460 460 print '%s\t\tDIRTY(%s, nbitID);' % (indent, dirtyVar)461 print('%s\t\tDIRTY(%s, nbitID);' % (indent, dirtyVar)) 461 462 462 463 # if current_fns_new[k].has_key( 'array' ): … … 467 468 468 469 469 print '%s\t\tDIRTY(cb->dirty, nbitID);' % indent470 print '%s\t}' % indent471 if current_fns_new[k].has_key( 'array' ):472 print '%s\t%s->ptr[i] = v;' % (indent, name)470 print('%s\t\tDIRTY(cb->dirty, nbitID);' % indent) 471 print('%s\t}' % indent) 472 if 'array' in current_fns_new[k]: 473 print('%s\t%s->ptr[i] = v;' % (indent, name )) 473 474 else: 474 print '%s\t%s->ptr = v;' % (indent, name)475 if current_fns_new[k].has_key( 'array' ):476 print '\t\t}'477 print '\t\tcurrent->changed%s = 0;' % k478 print '\t}'479 print '\tcrStateResetCurrentPointers(current);'480 print '}'475 print('%s\t%s->ptr = v;' % (indent, name )) 476 if 'array' in current_fns_new[k]: 477 print('\t\t}') 478 print('\t\tcurrent->changed%s = 0;' % k) 479 print('\t}') 480 print('\tcrStateResetCurrentPointers(current);') 481 print('}') -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_funcs.py
r15532 r63939 5 5 6 6 7 from __future__ import print_function 7 8 import sys 8 9 … … 13 14 apiutil.CopyrightC() 14 15 15 print 16 print(""" 16 17 /* DO NOT EDIT - THIS FILE AUTOMATICALLY GENERATED BY state_funcs.py SCRIPT */ 17 18 #ifndef CR_STATE_FUNCS_H … … 33 34 #endif 34 35 35 #define STATE_UNUSED(x) ((void)x)""" 36 #define STATE_UNUSED(x) ((void)x)""") 36 37 37 38 … … 40 41 return_type = apiutil.ReturnType(func_name) 41 42 params = apiutil.Parameters(func_name) 42 print 'DECLEXPORT(%s) STATE_APIENTRY crState%s( %s );' % (return_type, func_name, apiutil.MakeDeclarationString(params))43 print('DECLEXPORT(%s) STATE_APIENTRY crState%s( %s );' % (return_type, func_name, apiutil.MakeDeclarationString(params))) 43 44 44 45 for func_name in apiutil.AllSpecials( "state_feedback" ): 45 46 return_type = apiutil.ReturnType(func_name) 46 47 params = apiutil.Parameters(func_name) 47 print 'DECLEXPORT(%s) STATE_APIENTRY crStateFeedback%s( %s );' % (return_type, func_name, apiutil.MakeDeclarationString(params))48 print('DECLEXPORT(%s) STATE_APIENTRY crStateFeedback%s( %s );' % (return_type, func_name, apiutil.MakeDeclarationString(params))) 48 49 49 50 for func_name in apiutil.AllSpecials( "state_select" ): 50 51 return_type = apiutil.ReturnType(func_name) 51 52 params = apiutil.Parameters(func_name) 52 print 'DECLEXPORT(%s) STATE_APIENTRY crStateSelect%s( %s );' % (return_type, func_name, apiutil.MakeDeclarationString(params))53 print('DECLEXPORT(%s) STATE_APIENTRY crStateSelect%s( %s );' % (return_type, func_name, apiutil.MakeDeclarationString(params))) 53 54 54 55 55 print 56 print(""" 56 57 #ifdef __cplusplus 57 58 } … … 59 60 60 61 #endif /* CR_STATE_FUNCS_H */ 61 """ 62 """) -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_get.py
r50041 r63939 4 4 # See the file LICENSE.txt for information on redistributing this software. 5 5 6 from __future__ import print_function 6 7 import sys, re, string 7 8 import apiutil … … 21 22 type = match.group(1) 22 23 pname = match.group(2) 23 fields = string.split( match.group(3))24 fields = match.group(3).split() 24 25 params[pname] = ( type, fields ) 25 26 … … 33 34 pname = match.group(2) 34 35 ifdef = match.group(3) 35 fields = string.split( match.group(4))36 fields = match.group(4).split() 36 37 extended_params[pname] = ( type, ifdef, fields ) 37 38 … … 104 105 apiutil.CopyrightC() 105 106 106 print 107 print(""" 107 108 /* DO NOT EDIT - THIS FILE GENERATED BY state_get.txt AND THE state_get.py SCRIPT */ 108 109 #include <stdio.h> … … 141 142 return g->framebufferobject.readFB ? g->framebufferobject.readFB->readbuffer : g->buffer.readBuffer; 142 143 } 143 """ 144 """) 144 145 145 146 header = """ … … 173 174 174 175 for rettype in types: 175 print '' 176 print 'void STATE_APIENTRY crStateGet%sv( GLenum pname, %s *params )' % ( rettype, ctypes[rettype] ) 177 print header 178 179 keys = params.keys() 180 keys.sort() 181 for pname in keys: 182 print '\t\tcase %s:' % pname 176 print('') 177 print('void STATE_APIENTRY crStateGet%sv( GLenum pname, %s *params )' % ( rettype, ctypes[rettype] )) 178 print(header) 179 180 for pname in sorted(params.keys()): 181 print('\t\tcase %s:' % pname) 183 182 (srctype,fields) = params[pname] 184 183 try: … … 187 186 for field in fields: 188 187 expr = cvt % field 189 print '\t\t\tparams[%d] = %s;' % (i,expr)188 print('\t\t\tparams[%d] = %s;' % (i,expr)) 190 189 i += 1 191 190 except: 192 print '\t\t\tcrStateError(__LINE__,__FILE__,GL_INVALID_OPERATION, "Unimplemented glGet!");' 193 print "\t\t\tbreak;" 194 195 196 keys = extended_params.keys(); 197 keys.sort() 198 for pname in keys: 191 print('\t\t\tcrStateError(__LINE__,__FILE__,GL_INVALID_OPERATION, "Unimplemented glGet!");') 192 print("\t\t\tbreak;") 193 194 195 for pname in sorted(extended_params.keys()): 199 196 (srctype,ifdef,fields) = extended_params[pname] 200 197 ext = ifdef[3:] # the extension name with the "GL_" prefix removed 201 198 #print '#ifdef %s' % ifdef 202 print '#ifdef CR_%s' % ext203 print '\t\tcase %s:' % pname199 print('#ifdef CR_%s' % ext) 200 print('\t\tcase %s:' % pname) 204 201 if ext != 'OPENGL_VERSION_1_2': 205 print '\t\t\tif (g->extensions.%s) {' % ext202 print('\t\t\tif (g->extensions.%s) {' % ext) 206 203 try: 207 204 cvt = convert[srctype][rettype] … … 211 208 if field[0] == '%': 212 209 command = string.split(field, '%') 213 print '\t\t\t\t%s;' % command[1]210 print('\t\t\t\t%s;' % command[1]) 214 211 continue 215 212 elif ext != 'OPENGL_VERSION_1_2': 216 print '\t\t\t\tparams[%d] = %s;' % (i,expr)213 print('\t\t\t\tparams[%d] = %s;' % (i,expr)) 217 214 else: 218 print '\t\t\tparams[%d] = %s;' % (i,expr)215 print('\t\t\tparams[%d] = %s;' % (i,expr)) 219 216 i += 1 220 217 except: 221 print '\t\t\tcrStateError(__LINE__,__FILE__,GL_INVALID_OPERATION, "Unimplemented glGet!");'218 print('\t\t\tcrStateError(__LINE__,__FILE__,GL_INVALID_OPERATION, "Unimplemented glGet!");') 222 219 if ext != 'OPENGL_VERSION_1_2': 223 print "\t\t\t}"224 print "\t\t\telse {"225 print '\t\t\t\tcrStateError(__LINE__,__FILE__,GL_INVALID_ENUM, "glGet%sv");' % rettype226 print "\t\t\t}"227 print "\t\t\tbreak;"220 print("\t\t\t}") 221 print("\t\t\telse {") 222 print('\t\t\t\tcrStateError(__LINE__,__FILE__,GL_INVALID_ENUM, "glGet%sv");' % rettype) 223 print("\t\t\t}") 224 print("\t\t\tbreak;") 228 225 #print '#endif /* %s */' % ifdef 229 print '#endif /* CR_%s */' % ext230 231 print '\t\tdefault:'232 print '\t\t\tcrStateError(__LINE__, __FILE__, GL_INVALID_ENUM, "glGet: Unknown enum: 0x%x", pname);'233 print '\t\t\treturn;'234 print '\t}'235 print '}'226 print('#endif /* CR_%s */' % ext) 227 228 print('\t\tdefault:') 229 print('\t\t\tcrStateError(__LINE__, __FILE__, GL_INVALID_ENUM, "glGet: Unknown enum: 0x%x", pname);') 230 print('\t\t\treturn;') 231 print('\t}') 232 print('}') 236 233 237 234 from get_components import * -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_isenabled.py
r15532 r63939 4 4 # See the file LICENSE.txt for information on redistributing this software. 5 5 6 from __future__ import print_function 6 7 import sys, re, string 7 8 import apiutil … … 20 21 type = match.group(1) 21 22 pname = match.group(2) 22 fields = string.split( match.group(3))23 fields = match.group(3).split() 23 24 params[pname] = ( type, fields ) 24 25 … … 30 31 pname = match.group(2) 31 32 ifdef = match.group(3) 32 fields = string.split( match.group(4))33 fields = match.group(4).split() 33 34 extended_params[pname] = ( type, ifdef, fields ) 34 35 35 36 apiutil.CopyrightC() 36 37 37 print 38 print(""" 38 39 /* DO NOT EDIT - THIS FILE GENERATED BY THE state_isenabled.py SCRIPT */ 39 40 #include <stdio.h> … … 54 55 55 56 switch ( pname ) { 56 """ 57 """) 57 58 58 keys = params.keys() 59 keys.sort(); 59 for pname in sorted(params.keys()): 60 print("\tcase %s:" % pname) 61 print("\t\treturn %s;" % params[pname][1][0]) 60 62 61 for pname in keys: 62 print "\tcase %s:" % pname 63 print "\t\treturn %s;" % params[pname][1][0] 64 65 keys = extended_params.keys(); 66 keys.sort() 67 68 for pname in keys: 63 for pname in sorted(extended_params.keys()): 69 64 (srctype,ifdef,fields) = extended_params[pname] 70 65 ext = ifdef[3:] # the extension name with the "GL_" prefix removed 71 66 ext = ifdef 72 print '#ifdef CR_%s' % ext73 print "\tcase %s:" % pname74 print "\t\treturn %s;" % extended_params[pname][2][0]75 print '#endif /* CR_%s */' % ext76 print "\tdefault:"77 print "\t\tcrStateError(__LINE__, __FILE__, GL_INVALID_ENUM, \"glIsEnabled: Unknown enum: %d\", pname);"78 print "\t\treturn 0;"79 print "\t}"80 print "}"67 print('#ifdef CR_%s' % ext) 68 print("\tcase %s:" % pname) 69 print("\t\treturn %s;" % extended_params[pname][2][0]) 70 print('#endif /* CR_%s */' % ext) 71 print("\tdefault:") 72 print("\t\tcrStateError(__LINE__, __FILE__, GL_INVALID_ENUM, \"glIsEnabled: Unknown enum: %d\", pname);") 73 print("\t\treturn 0;") 74 print("\t}") 75 print("}")
Note:
See TracChangeset
for help on using the changeset viewer.