Skip to content

Commit 5477d9c

Browse files
authored
Fix PyrenderViewer black screen on macOS (#630)
On macOS, pyglet.app.run() is not called, so the scheduled enable_rendering callback was never executed. This caused _allow_rendering to remain False, making on_draw() return early without rendering anything. Enable rendering directly for macOS instead of scheduling it.
1 parent 9133965 commit 5477d9c

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

skrobot/viewers/_pyrender.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,12 @@ def _init_and_start_app(self):
218218
def enable_rendering(dt):
219219
self._allow_rendering = True
220220

221-
clock.schedule_once(enable_rendering, 0.1)
222-
223-
if compat_platform != 'darwin':
221+
if compat_platform == 'darwin':
222+
# On macOS, pyglet.app.run() is not called, so we enable rendering directly
223+
# after a short delay via multiple redraw cycles in show()
224+
self._allow_rendering = True
225+
else:
226+
clock.schedule_once(enable_rendering, 0.1)
224227
pyglet.app.run()
225228

226229
def redraw(self):

0 commit comments

Comments
 (0)