Skip to content

Commit c765633

Browse files
committed
Improve exception handling for 'Rasterizer.render_camera'.
1 parent 10b8308 commit c765633

File tree

1 file changed

+31
-30
lines changed

1 file changed

+31
-30
lines changed

genesis/vis/rasterizer.py

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -69,36 +69,37 @@ def render_camera(self, camera, rgb=True, depth=False, segmentation=False, norma
6969
self._context.buffer.clear()
7070

7171
# Render
72-
if rgb or depth or normal:
73-
retval = self._renderer.render(
74-
self._context._scene,
75-
self._camera_targets[camera.uid],
76-
camera_node=self._camera_nodes[camera.uid],
77-
env_separate_rigid=self._context.env_separate_rigid,
78-
rgb=rgb,
79-
normal=normal,
80-
seg=False,
81-
depth=depth,
82-
plane_reflection=rgb and self._context.plane_reflection,
83-
shadow=rgb and self._context.shadow,
84-
)
85-
86-
if segmentation:
87-
seg_idxc_rgb_arr, *_ = self._renderer.render(
88-
self._context._scene,
89-
self._camera_targets[camera.uid],
90-
camera_node=self._camera_nodes[camera.uid],
91-
env_separate_rigid=self._context.env_separate_rigid,
92-
rgb=False,
93-
normal=False,
94-
seg=True,
95-
depth=False,
96-
plane_reflection=False,
97-
shadow=False,
98-
)
99-
100-
# Unset the context
101-
self._renderer.make_uncurrent()
72+
try:
73+
if rgb or depth or normal:
74+
retval = self._renderer.render(
75+
self._context._scene,
76+
self._camera_targets[camera.uid],
77+
camera_node=self._camera_nodes[camera.uid],
78+
env_separate_rigid=self._context.env_separate_rigid,
79+
rgb=rgb,
80+
normal=normal,
81+
seg=False,
82+
depth=depth,
83+
plane_reflection=rgb and self._context.plane_reflection,
84+
shadow=rgb and self._context.shadow,
85+
)
86+
87+
if segmentation:
88+
seg_idxc_rgb_arr, *_ = self._renderer.render(
89+
self._context._scene,
90+
self._camera_targets[camera.uid],
91+
camera_node=self._camera_nodes[camera.uid],
92+
env_separate_rigid=self._context.env_separate_rigid,
93+
rgb=False,
94+
normal=False,
95+
seg=True,
96+
depth=False,
97+
plane_reflection=False,
98+
shadow=False,
99+
)
100+
finally:
101+
# Unset the context
102+
self._renderer.make_uncurrent()
102103
else:
103104
# Render
104105
if rgb or depth or normal:

0 commit comments

Comments
 (0)