Skip to content

Commit 67e986f

Browse files
committed
Fix ShapesRenderer
1 parent 414517e commit 67e986f

File tree

4 files changed

+13
-8
lines changed

4 files changed

+13
-8
lines changed

webgpu/camera.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class CameraUniforms(UniformBase):
1212
_fields_ = [
1313
("model_view", ct.c_float * 16),
1414
("model_view_projection", ct.c_float * 16),
15+
("rot_mat", ct.c_float * 16),
1516
("normal_mat", ct.c_float * 16),
1617
("aspect", ct.c_float),
1718
("padding", ct.c_uint32 * 3),
@@ -210,4 +211,5 @@ def _update_uniforms(self):
210211
self.uniforms.model_view[:] = model_view.transpose().flatten()
211212
self.uniforms.model_view_projection[:] = model_view_proj.transpose().flatten()
212213
self.uniforms.normal_mat[:] = normal_mat.flatten()
214+
self.uniforms.rot_mat[:] = self.transform._rot_mat.flatten()
213215
self.uniforms.update_buffer()

webgpu/shaders/camera.wgsl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
struct CameraUniforms {
22
model_view: mat4x4<f32>,
33
model_view_projection: mat4x4<f32>,
4+
rot_mat: mat4x4<f32>,
45
normal_mat: mat4x4<f32>,
56
aspect: f32,
67

webgpu/shapes.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,10 @@ def update(self, options: RenderOptions):
305305
elif n_colors == 2:
306306
color_stride = 0
307307
color_top_offset = itemsize
308+
else:
309+
raise ValueError(
310+
f"Invalid number of colors/values: {n_colors}. Expected {self.n_instances}, {2 * self.n_instances}, 1, or 2."
311+
)
308312

309313
bmin, bmax = self.shape_data.get_bounding_box()
310314
z_range = [bmin[2], bmax[2]]

webgpu/webgpu_api.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1710,24 +1710,22 @@ def setScissorRect(self, x: int = 0, y: int = 0, width: int = 0, height: int = 0
17101710
def setVertexBuffer(
17111711
self,
17121712
slot: int = 0,
1713-
buffer: "Buffer | None" = None,
1713+
buffer: Buffer | None = None,
17141714
offset: int = 0,
1715-
size: int = 0,
1715+
size: int | None = None,
17161716
) -> None:
17171717
return self.handle.setVertexBuffer(
17181718
slot, None if buffer is None else buffer.handle, offset, size
17191719
)
17201720

17211721
def setIndexBuffer(
17221722
self,
1723-
buffer: "Buffer | None" = None,
1724-
format: "IndexFormat | None" = None,
1723+
buffer: Buffer | None = None,
1724+
format: IndexFormat | None = None,
17251725
offset: int = 0,
1726-
size: int = 0,
1726+
size: int | None = None,
17271727
) -> None:
1728-
return self.handle.setIndexBuffer(
1729-
None if buffer is None else buffer.handle, format, offset, size
1730-
)
1728+
return self.handle.setIndexBuffer(buffer and buffer.handle, format, offset, size)
17311729

17321730
def beginOcclusionQuery(self, queryIndex: int = 0) -> None:
17331731
return self.handle.beginOcclusionQuery(queryIndex)

0 commit comments

Comments
 (0)