try to fix wsl open3d crash

This commit is contained in:
ykcheungab
2026-06-29 10:50:29 +08:00
parent 4cc1027cc8
commit e855651500
2 changed files with 4 additions and 20 deletions
+2 -18
View File
@@ -2,8 +2,6 @@
from __future__ import annotations
import sys
from PyQt5.QtCore import QEvent, Qt
from PyQt5.QtGui import QMouseEvent
@@ -105,10 +103,6 @@ class MeshViewportWidget(ImagePanel):
return
self.label.setText("")
self._init_renderer(pipeline)
if self._layout.mesh_async_render and sys.platform != "win32":
self._mesh_worker = MeshRenderWorker(self)
self._mesh_worker.rgb_ready.connect(self._on_rgb_ready)
self._mesh_worker.set_renderer(self._renderer)
def _init_renderer(self, pipeline) -> None:
if not self._enable_3d or pipeline.uv_mesh is None:
@@ -156,22 +150,12 @@ class MeshViewportWidget(ImagePanel):
self.set_source_pixmap(ndarray_to_pixmap(rgb, bgr=False))
def update_frame(self, frame: FingerFrameView, *, async_render: bool | None = None) -> float:
"""Update mesh colors. Returns render wall time (0 when async submit only)."""
"""Update mesh colors on the same thread that owns the renderer."""
if not self._enable_3d or self._renderer is None:
return 0.0
self._last_frame = frame
use_async = self._layout.mesh_async_render if async_render is None else async_render
if use_async and self._mesh_worker is not None:
self._mesh_worker.submit(
flow=frame.flow,
scalar_map=frame.depth_map,
centroid=frame.centroid,
centroid_found=frame.centroid_found,
fnormal=frame.fnormal,
valid_mask=frame.valid_mask,
)
return 0.0
del async_render # Offscreen Open3D renderers are not safe to drive from a QThread.
import time