Fix NTSC shaders by preprocessing first.
If vertex shader is in an #include, it wouldn't get column_major fix applied.
This commit is contained in:
parent
fa39a1ec39
commit
4627c106e4
|
@ -546,11 +546,19 @@ def preprocess_vertex(source_data):
|
||||||
return '\n'.join(ret)
|
return '\n'.join(ret)
|
||||||
|
|
||||||
def convert(source, dest):
|
def convert(source, dest):
|
||||||
vert_cmd = ['cgc', '-profile', 'glesv', '-entry', 'main_vertex', '-quiet', '-I', os.path.split(source)[0]]
|
# Have to preprocess first to resolve #includes so we can hack potential vertex shaders.
|
||||||
with open(source, 'r') as f:
|
vert_cmd_preprocess = ['cgc', '-E', '-I', os.path.split(source)[0], source]
|
||||||
source_data = f.read()
|
p = subprocess.Popen(vert_cmd_preprocess, stderr = subprocess.PIPE, stdout = subprocess.PIPE)
|
||||||
|
source_data, stderr_ret = p.communicate()
|
||||||
|
log(stderr_ret.decode())
|
||||||
|
|
||||||
|
if p.returncode != 0:
|
||||||
|
log('Vertex preprocessing failed ...')
|
||||||
|
|
||||||
|
source_data = preprocess_vertex(source_data.decode())
|
||||||
|
|
||||||
|
vert_cmd = ['cgc', '-profile', 'glesv', '-entry', 'main_vertex', '-quiet']
|
||||||
p = subprocess.Popen(vert_cmd, stdin = subprocess.PIPE, stderr = subprocess.PIPE, stdout = subprocess.PIPE)
|
p = subprocess.Popen(vert_cmd, stdin = subprocess.PIPE, stderr = subprocess.PIPE, stdout = subprocess.PIPE)
|
||||||
source_data = preprocess_vertex(source_data)
|
|
||||||
vertex_source, stderr_ret = p.communicate(input = source_data.encode())
|
vertex_source, stderr_ret = p.communicate(input = source_data.encode())
|
||||||
log(stderr_ret.decode())
|
log(stderr_ret.decode())
|
||||||
vertex_source = vertex_source.decode()
|
vertex_source = vertex_source.decode()
|
||||||
|
@ -559,9 +567,9 @@ def convert(source, dest):
|
||||||
log('Vertex compilation failed ...')
|
log('Vertex compilation failed ...')
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
frag_cmd = ['cgc', '-profile', 'glesf', '-entry', 'main_fragment', '-quiet', source]
|
frag_cmd = ['cgc', '-profile', 'glesf', '-entry', 'main_fragment', '-quiet']
|
||||||
p = subprocess.Popen(frag_cmd, stderr = subprocess.PIPE, stdout = subprocess.PIPE)
|
p = subprocess.Popen(frag_cmd, stdin = subprocess.PIPE, stderr = subprocess.PIPE, stdout = subprocess.PIPE)
|
||||||
fragment_source, stderr_ret = p.communicate()
|
fragment_source, stderr_ret = p.communicate(input = source_data.encode())
|
||||||
log(stderr_ret.decode())
|
log(stderr_ret.decode())
|
||||||
fragment_source = fragment_source.decode()
|
fragment_source = fragment_source.decode()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue