🚧 [WIP/TEST] Model : Overlayの処理からasyncを削除

This commit is contained in:
misyaguziya
2024-05-02 18:24:09 +09:00
parent ee8c25dea9
commit 0eba5443b4

View File

@@ -167,21 +167,18 @@ class Overlay:
else: else:
self.updateTransparency() self.updateTransparency()
async def mainloop(self): def mainloop(self):
while self.checkActive() is True: while self.checkActive() is True:
startTime = time.monotonic() startTime = time.monotonic()
self.update() self.update()
sleepTime = (1 / 60) - (time.monotonic() - startTime) sleepTime = (1 / 60) - (time.monotonic() - startTime)
if sleepTime > 0: if sleepTime > 0:
await asyncio.sleep(sleepTime) time.sleep(sleepTime)
async def initMain(self):
await self.mainloop()
def main(self): def main(self):
self.init() self.init()
if self.initialized is True: if self.initialized is True:
asyncio.run(self.initMain()) self.mainloop()
def startOverlay(self): def startOverlay(self):
self.thread_overlay = Thread(target=self.main) self.thread_overlay = Thread(target=self.main)
@@ -191,10 +188,13 @@ class Overlay:
def shutdown(self): def shutdown(self):
if self.thread_overlay is not None: if self.thread_overlay is not None:
ctypes.pythonapi.PyThreadState_SetAsyncExc(ctypes.c_long(self.thread_overlay.ident), ctypes.py_object(SystemExit)) ctypes.pythonapi.PyThreadState_SetAsyncExc(ctypes.c_long(self.thread_overlay.ident), ctypes.py_object(SystemExit))
self.thread_overlay = None
if self.overlay is not None: if self.overlay is not None:
self.overlay.destroyOverlay(self.handle) self.overlay.destroyOverlay(self.handle)
self.overlay = None
if self.system is not None: if self.system is not None:
openvr.shutdown() openvr.shutdown()
self.system = None
self.initialized = False self.initialized = False
if __name__ == '__main__': if __name__ == '__main__':