diff --git a/manimlib/shader_wrapper.py b/manimlib/shader_wrapper.py index 282deb8d..87f1ccc6 100644 --- a/manimlib/shader_wrapper.py +++ b/manimlib/shader_wrapper.py @@ -121,11 +121,15 @@ class ShaderWrapper(object): return self -# Helper functions related to shader code +# For caching +filename_to_code_map = {} + def get_shader_code_from_file(filename): if not filename: return None + if filename in filename_to_code_map: + return filename_to_code_map[filename] try: filepath = find_file( @@ -149,6 +153,7 @@ def get_shader_code_from_file(filename): os.path.join("inserts", line.replace("#INSERT ", "")) ) result = result.replace(line, inserted_code) + filename_to_code_map[filename] = result return result