From d0c3e6dd1ce99cd437fca642d09593294e5d00cd Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Thu, 12 Sep 2024 23:11:20 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B[bugfix]=20Model:=20overlay=20|=20s?= =?UTF-8?q?etOverlayRaw=E3=81=AE=E5=87=A6=E7=90=86=E3=82=92200=E5=9B=9E?= =?UTF-8?q?=E7=B9=B0=E3=82=8A=E8=BF=94=E3=81=99=E3=81=A8OverlayError=5FReq?= =?UTF-8?q?uestFailed=E3=81=8C=E7=99=BA=E7=94=9F=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=81=9F=E3=82=81=E3=80=81Overlay=E3=81=AE=E5=86=8D=E8=B5=B7?= =?UTF-8?q?=E5=8B=95=E5=87=A6=E7=90=86=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-python/models/overlay/overlay.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src-python/models/overlay/overlay.py b/src-python/models/overlay/overlay.py index e83a341a..0888a298 100644 --- a/src-python/models/overlay/overlay.py +++ b/src-python/models/overlay/overlay.py @@ -1,3 +1,4 @@ +import os import ctypes import time from psutil import process_iter @@ -91,7 +92,7 @@ class Overlay: self.system = openvr.init(openvr.VRApplication_Background) self.overlay = openvr.IVROverlay() self.overlay_system = openvr.IVRSystem() - self.handle = self.overlay.createOverlay("Overlay_Speaker2log", "SOverlay_Speaker2log_UI") + self.handle = self.overlay.createOverlay("Overlay_Speaker2log", "Overlay_Speaker2log_UI") self.overlay.showOverlay(self.handle) self.initialized = True @@ -116,7 +117,16 @@ class Overlay: width, height = img.size img = img.tobytes() img = (ctypes.c_char * len(img)).from_buffer_copy(img) - self.overlay.setOverlayRaw(self.handle, img, width, height, 4) + + try: + self.overlay.setOverlayRaw(self.handle, img, width, height, 4) + except Exception as e: + printLog("error:Could not update image", e) + self.initialized = False + self.reStartOverlay() + while self.initialized is False: + time.sleep(0.1) + self.overlay.setOverlayRaw(self.handle, img, width, height, 4) self.updateOpacity(self.settings["opacity"]) self.lastUpdate = time.monotonic() @@ -253,6 +263,10 @@ class Overlay: self.system = None self.initialized = False + def reStartOverlay(self): + self.shutdownOverlay() + self.startOverlay() + @staticmethod def checkSteamvrRunning() -> bool: _proc_name = "vrmonitor.exe" if os.name == "nt" else "vrmonitor"