Add equality for ShaderWrapper

This commit is contained in:
Grant Sanderson 2022-04-23 18:51:03 -07:00
parent c3c5717dde
commit 3ae0a4e81b

View file

@ -45,6 +45,23 @@ class ShaderWrapper(object):
self.init_program_code()
self.refresh_id()
def __eq__(self, shader_wrapper: ShaderWrapper):
return all((
np.all(self.vert_data == shader_wrapper.vert_data),
np.all(self.vert_indices == shader_wrapper.vert_indices),
self.shader_folder == shader_wrapper.shader_folder,
all(
np.all(self.uniforms[key] == shader_wrapper.uniforms[key])
for key in self.uniforms
),
all(
self.texture_paths[key] == shader_wrapper.texture_paths[key]
for key in self.texture_paths
),
self.depth_test == shader_wrapper.depth_test,
self.render_primitive == shader_wrapper.render_primitive,
))
def copy(self):
result = copy.copy(self)
result.vert_data = np.array(self.vert_data)