From 6fca29991d0369000007359b19ced46aeb6858bf Mon Sep 17 00:00:00 2001 From: pedohorse <13556996+pedohorse@users.noreply.github.com> Date: Wed, 17 Jan 2024 20:34:12 +0100 Subject: [PATCH] crash on failed opengl --- src/lifeblood_viewer/nodeeditor.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/lifeblood_viewer/nodeeditor.py b/src/lifeblood_viewer/nodeeditor.py index 91f70550..54ee6160 100644 --- a/src/lifeblood_viewer/nodeeditor.py +++ b/src/lifeblood_viewer/nodeeditor.py @@ -1,5 +1,6 @@ import os import random +import sys from math import log2 from dataclasses import dataclass @@ -874,11 +875,16 @@ def drawForeground(self, painter: PySide2.QtGui.QPainter, rect: QRectF) -> None: painter.beginNativePainting() if not self.__imgui_init: - logger.debug('initializing imgui') - self.__imgui_init = True - imgui.create_context() - self.__imimpl = ProgrammablePipelineRenderer() - imguio = imgui.get_io() + try: + logger.debug('initializing imgui') + self.__imgui_init = True + imgui.create_context() + self.__imimpl = ProgrammablePipelineRenderer() + imguio = imgui.get_io() + except Exception as e: + logger.exception(f'Failed to initialized opengl context for imgui: {e}') + logger.critical('viewer cannot work without opengl context, shutting down') + sys.exit(1) # note that as of imgui 1.3.0 ini_file_name seem to have a bug of not increasing refcount, # so there HAS to be some other python variable, like self.__imgui_config_path, to ensure # that path is not garbage collected