Allow caching of shader program code

This commit is contained in:
Grant Sanderson
2021-01-13 00:10:17 -10:00
parent 00333d0a4d
commit fda7fff146

View File

@ -121,11 +121,15 @@ class ShaderWrapper(object):
return self return self
# Helper functions related to shader code # For caching
filename_to_code_map = {}
def get_shader_code_from_file(filename): def get_shader_code_from_file(filename):
if not filename: if not filename:
return None return None
if filename in filename_to_code_map:
return filename_to_code_map[filename]
try: try:
filepath = find_file( filepath = find_file(
@ -149,6 +153,7 @@ def get_shader_code_from_file(filename):
os.path.join("inserts", line.replace("#INSERT ", "")) os.path.join("inserts", line.replace("#INSERT ", ""))
) )
result = result.replace(line, inserted_code) result = result.replace(line, inserted_code)
filename_to_code_map[filename] = result
return result return result