Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: cg_to_glsl/convert.py

Issue 1696015: Fixed bug in naming of texCoord[0..7] parameters discovered by petersont.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/o3d/
Patch Set: Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 import optparse 2 import optparse
3 import os 3 import os
4 import re 4 import re
5 import subprocess 5 import subprocess
6 import sys 6 import sys
7 7
8 # This script takes an o3d cg shader from standard input and does the following: 8 # This script takes an o3d cg shader from standard input and does the following:
9 # 9 #
10 # * it extracts entry points to vertex and fragment shaders as specified by 10 # * it extracts entry points to vertex and fragment shaders as specified by
11 # VertexShaderEntryPoint and PixelShaderEntryPoint instructions; 11 # VertexShaderEntryPoint and PixelShaderEntryPoint instructions;
12 # 12 #
13 # * renames NORMAL, TANGENT{,1} and BINORMAL{,1} attributes to ATTR8-12; 13 # * renames NORMAL, TANGENT{,1} and BINORMAL{,1} attributes to ATTR8-12;
14 # 14 #
15 # * runs cgc with glslv and glslf profiles with those entry points; 15 # * runs cgc with glslv and glslf profiles with those entry points;
16 # 16 #
17 # * renames attributes and uniforms back to their orignal names; 17 # * renames attributes and uniforms back to their orignal names;
18 # 18 #
19 # * changes 'uniform vecN var[N]' to 'uniform matN var'; 19 # * changes 'uniform vecN var[N]' to 'uniform matN var';
20 # 20 #
21 # * renames gl_Vertex and gl_MultiTexCoordN to position and texcoordN 21 # * renames gl_Vertex and gl_MultiTexCoordN to position and texCoordN
22 # respectively and adds attribute declarations; 22 # respectively and adds attribute declarations;
23 # 23 #
24 # * prints the results to standard output, separating them with SplitMarker 24 # * prints the results to standard output, separating them with SplitMarker
25 # instruction and keeping the MatrixLoadOrder instruction as is. 25 # instruction and keeping the MatrixLoadOrder instruction as is.
26 26
27 # Cygwin lies about the OS name ("posix" instead of "nt"), the line 27 # Cygwin lies about the OS name ("posix" instead of "nt"), the line
28 # separator, and perhaps other things. For most robust behavior, try 28 # separator, and perhaps other things. For most robust behavior, try
29 # to find cgc on disk. 29 # to find cgc on disk.
30 30
31 def find_o3d_root(): 31 def find_o3d_root():
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 body) 157 body)
158 158
159 attributes = [] 159 attributes = []
160 if 'gl_Vertex' in body: 160 if 'gl_Vertex' in body:
161 # Change gl_Vertex to position and add attribute declaration. 161 # Change gl_Vertex to position and add attribute declaration.
162 body = re.sub(r'\bgl_Vertex\b', 'position', body) 162 body = re.sub(r'\bgl_Vertex\b', 'position', body)
163 attributes.append('attribute vec4 position;') 163 attributes.append('attribute vec4 position;')
164 164
165 for n in xrange(8): 165 for n in xrange(8):
166 if 'gl_MultiTexCoord%d' % n in body: 166 if 'gl_MultiTexCoord%d' % n in body:
167 # Change gl_MultiTexCoordN (0<=N<=7) to texcoordN and add attribute 167 # Change gl_MultiTexCoordN (0<=N<=7) to texCoordN and add attribute
168 # declaration. 168 # declaration.
169 body = re.sub(r'\bgl_MultiTexCoord%d\b' % n, 'texcoord%d' % n, body) 169 body = re.sub(r'\bgl_MultiTexCoord%d\b' % n, 'texCoord%d' % n, body)
170 attributes.append('attribute vec4 texcoord%d;' % n) 170 attributes.append('attribute vec4 texCoord%d;' % n)
171 171
172 # ATTRIBUTES_TO_SEMANTICS should have taken care of normals. 172 # ATTRIBUTES_TO_SEMANTICS should have taken care of normals.
173 assert 'gl_Normal' not in body 173 assert 'gl_Normal' not in body
174 174
175 if 'gl_Position' in body: 175 if 'gl_Position' in body:
176 # If there is exactly one assignment to gl_Position, modify it similar to 176 # If there is exactly one assignment to gl_Position, modify it similar to
177 # how RewriteVertexProgramSource in gl/effect_gl.cc does it. The input is 177 # how RewriteVertexProgramSource in gl/effect_gl.cc does it. The input is
178 # taken from vec4 dx_clipping uniform. 178 # taken from vec4 dx_clipping uniform.
179 # 179 #
180 # If there is more than one gl_Position mentioned in the shader, the 180 # If there is more than one gl_Position mentioned in the shader, the
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 else: 272 else:
273 f = open(options.file) 273 f = open(options.file)
274 input = f.read() 274 input = f.read()
275 except KeyboardInterrupt: 275 except KeyboardInterrupt:
276 input = None 276 input = None
277 277
278 if not input: 278 if not input:
279 cmdline_parser.print_help() 279 cmdline_parser.print_help()
280 else: 280 else:
281 main(input, CGC) 281 main(input, CGC)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698