Skip to content

Commit 7e87531

Browse files
committed
update colorbar if colormap changes
1 parent 67b8f33 commit 7e87531

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

webgpu/colormap.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def __init__(self, minval=None, maxval=None, colormap: list | str = "matlab:jet"
4949
self.n_colors = 8
5050
self.uniforms = None
5151
self.sampler = None
52-
52+
self._callbacks = []
5353
self.set_colormap(colormap)
5454

5555
def update(self, options: RenderOptions):
@@ -82,12 +82,16 @@ def set_colormap(self, colormap: list | str):
8282

8383
self.colors = colormap
8484
self.set_needs_update()
85+
for callback in self._callbacks:
86+
callback()
8587

8688
def set_n_colors(self, n_colors):
8789
self.n_instances = 2 * n_colors
8890
if self.uniforms is not None:
8991
self.uniforms.n_colors = n_colors
9092
self.uniforms.update_buffer()
93+
for callback in self._callbacks:
94+
callback()
9195

9296
def set_min_max(self, minval, maxval, set_autoscale=True):
9397
self.minval = minval
@@ -98,20 +102,26 @@ def set_min_max(self, minval, maxval, set_autoscale=True):
98102
self.uniforms.min = minval
99103
self.uniforms.max = maxval
100104
self.uniforms.update_buffer()
105+
for callback in self._callbacks:
106+
callback()
101107

102108
def set_min(self, minval):
103109
self.minval = minval
104110
self.autoscale = False
105111
if self.uniforms is not None:
106112
self.uniforms.min = minval
107113
self.uniforms.update_buffer()
114+
for callback in self._callbacks:
115+
callback()
108116

109117
def set_max(self, maxval):
110118
self.maxval = maxval
111119
self.autoscale = False
112120
if self.uniforms is not None:
113121
self.uniforms.max = maxval
114122
self.uniforms.update_buffer()
123+
for callback in self._callbacks:
124+
callback()
115125

116126
def get_bindings(self):
117127
return [
@@ -169,6 +179,7 @@ def __init__(
169179
self._position = position
170180
self._width = width
171181
self._height = height
182+
colormap._callbacks.append(self.set_needs_update)
172183

173184
@property
174185
def position(self):

0 commit comments

Comments
 (0)