12
12
if len(sys.argv) != 2:
13
print >> sys.stderr, "Usage: %s <filename>" % sys.argv[0]
13
print >> sys.stderr, "Usage: %s <filename>" % sys.argv[0]
16
16
file = open(sys.argv[1])
18
18
print "/* THIS FILE IS AUTOGENERATED FROM %s BY pack_swap.py */\n\n" % sys.argv[1]
20
20
for line in file.readlines():
22
if line.find( "crPackAlloc" ) != -1 or line.find( "crPackFree" ) != -1:
25
elif line.find( "crPack" ) != -1:
26
fun_index = line.find( "crPack" )
27
paren_index = line.find( "(", fun_index )
28
space_index = line.find( " ", fun_index )
29
quote_index = line.find( '"', fun_index )
31
paren_index = 1000000; # HACK HACK
33
space_index = 1000000; # HACK HACK
35
quote_index = 1000000; # HACK HACK
36
the_index = min( min( paren_index, space_index ), quote_index )
37
print "%sSWAP%s" % (line[:the_index], line[the_index:])
38
elif line.find( "WRITE_DATA" ) != -1:
39
lparen_index = line.find( "(" )
40
rparen_index = line.rfind( ")" )
41
args = map( string.strip, line[lparen_index+1:rparen_index].split( "," ) )
42
indentation = line[:line.find( "WRITE_DATA" )]
43
if apiutil.sizeof(args[1]) == 1:
44
print "%sWRITE_DATA( %s, %s, %s );" % (indentation, args[0], args[1], args[2])
45
elif apiutil.sizeof(args[1]) == 2:
46
print "%sWRITE_DATA( %s, %s, SWAP16(%s) );" % (indentation, args[0], args[1], args[2])
47
elif args[1] == 'GLfloat' or args[1] == 'GLclampf':
48
print "%sWRITE_DATA( %s, GLuint, SWAPFLOAT(%s) );" % (indentation, args[0], args[2])
49
elif apiutil.sizeof(args[1]) == 4:
50
print "%sWRITE_DATA( %s, %s, SWAP32(%s) );" % (indentation, args[0], args[1], args[2])
52
print >> sys.stderr, "UNKNOWN TYPE FOR WRITE_DATA: %s" % args[1]
54
elif line.find( "WRITE_DOUBLE" ) != -1:
55
print line.replace( "WRITE_DOUBLE", "WRITE_SWAPPED_DOUBLE" )
22
if line.find( "crPackAlloc" ) != -1 or line.find( "crPackFree" ) != -1:
25
elif line.find( "crPack" ) != -1:
26
fun_index = line.find( "crPack" )
27
paren_index = line.find( "(", fun_index )
28
space_index = line.find( " ", fun_index )
29
quote_index = line.find( '"', fun_index )
31
paren_index = 1000000; # HACK HACK
33
space_index = 1000000; # HACK HACK
35
quote_index = 1000000; # HACK HACK
36
the_index = min( min( paren_index, space_index ), quote_index )
37
print "%sSWAP%s" % (line[:the_index], line[the_index:])
38
elif line.find("WRITE_DATA_AI") != -1:
39
lparen_index = line.find( "(" )
40
rparen_index = line.rfind( ")" )
41
args = map( string.strip, line[lparen_index+1:rparen_index].split( "," ) )
42
indentation = line[:line.find( "WRITE_DATA_AI" )]
43
if apiutil.sizeof(args[0]) == 1:
44
print "%sWRITE_DATA_AI(%s, %s);" % (indentation, args[0], args[1])
45
elif apiutil.sizeof(args[0]) == 2:
46
print "%sWRITE_DATA_AI(%s, SWAP16(%s) );" % (indentation, args[0], args[1])
47
elif args[0] == 'GLfloat' or args[0] == 'GLclampf':
48
print "%sWRITE_DATA_AI(GLuint, SWAPFLOAT(%s) );" % (indentation, args[0])
49
elif apiutil.sizeof(args[0]) == 4:
50
print "%sWRITE_DATA_AI(%s, SWAP32(%s) );" % (indentation, args[0], args[1])
52
print >> sys.stderr, "UNKNOWN TYPE FOR WRITE_DATA: %s" % args[1]
54
elif line.find( "WRITE_DATA" ) != -1:
55
lparen_index = line.find( "(" )
56
rparen_index = line.rfind( ")" )
57
args = map( string.strip, line[lparen_index+1:rparen_index].split( "," ) )
58
indentation = line[:line.find( "WRITE_DATA" )]
59
if apiutil.sizeof(args[1]) == 1:
60
print "%sWRITE_DATA( %s, %s, %s );" % (indentation, args[0], args[1], args[2])
61
elif apiutil.sizeof(args[1]) == 2:
62
print "%sWRITE_DATA( %s, %s, SWAP16(%s) );" % (indentation, args[0], args[1], args[2])
63
elif args[1] == 'GLfloat' or args[1] == 'GLclampf':
64
print "%sWRITE_DATA( %s, GLuint, SWAPFLOAT(%s) );" % (indentation, args[0], args[2])
65
elif apiutil.sizeof(args[1]) == 4:
66
print "%sWRITE_DATA( %s, %s, SWAP32(%s) );" % (indentation, args[0], args[1], args[2])
68
print >> sys.stderr, "UNKNOWN TYPE FOR WRITE_DATA: %s" % args[1]
70
elif line.find( "WRITE_DOUBLE" ) != -1:
71
print line.replace( "WRITE_DOUBLE", "WRITE_SWAPPED_DOUBLE" )