diff --git a/pyrousel/app.py b/pyrousel/app.py index f8b95c6..032968f 100644 --- a/pyrousel/app.py +++ b/pyrousel/app.py @@ -7,6 +7,7 @@ class ApplicationSettings: window_width: int = 1024 window_height: int = 1024 startup_model: str = None + enable_gui: bool = True def Main() -> None: args = ParseArgs() @@ -17,6 +18,7 @@ def Main() -> None: app_settings.window_width = args.width app_settings.window_height = args.height app_settings.startup_model = args.model + app_settings.enable_gui = not args.nogui Run(app_settings) exit(0) @@ -24,11 +26,13 @@ def Main() -> None: def Run(settings: ApplicationSettings = ApplicationSettings()) -> None: print('Running Pyrousel...') print(f'--Window size: {settings.window_width}x{settings.window_height}') + print(f'--gui: {settings.enable_gui}') print(f'--Startup model: {settings.startup_model}') print('\n') app_window = AppWindow(settings.window_width, settings.window_height) app_window.Init() + app_window.draw_gui = settings.enable_gui if settings.startup_model is not None: app_window.OnModelRequested(settings.startup_model) @@ -59,6 +63,13 @@ def ParseArgs(): required=False, help='filepath to initial model file' ) + arg_parser.add_argument( + '--nogui', + action='store_true', + default=False, + required=False, + help='disable interactive property panel' + ) args = None try: diff --git a/pyrousel/appwindow.py b/pyrousel/appwindow.py index 2f79bef..0416113 100644 --- a/pyrousel/appwindow.py +++ b/pyrousel/appwindow.py @@ -16,6 +16,7 @@ def __init__(self, width: int = 1280, height: int = 720): self.__width = width self.__height = height self.__aspec_ratio = self.__width / self.__height + self.draw_gui = True self.render_hints = RenderHints() self.render_hints.wireframe_color = Vector4([0.0, 0.55, 0.0, 0.22]) self.material_settings = MaterialSettings() @@ -187,7 +188,10 @@ def __RenderScene(self) -> None: self.graphics.SetPerspectiveMatrix(self.camera.GetPerspectiveMatrix()) self.graphics.light_value = self.light_color * self.light_intensity self.graphics.RenderModel(self.model, self.render_hints, self.material_settings) - self.gui.Render() + + if self.draw_gui: + self.gui.Render() + glfw.swap_buffers(self.__win) def Run(self) -> None: