Skip to content

Commit c53e189

Browse files
committed
feat(fast): add a fast option to choose rendering pipeline
1 parent 88243d4 commit c53e189

4 files changed

Lines changed: 33 additions & 9 deletions

File tree

src/e3sm_quickview/app.py

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,21 @@
1919
from e3sm_quickview.components import css, dialogs, doc, drawers, file_browser, toolbars
2020
from e3sm_quickview.pipeline import EAMVisSource
2121
from e3sm_quickview.utils import cli, compute
22-
from e3sm_quickview.view_manager2 import ViewManager
2322

2423
v3.enable_lab()
2524

2625

26+
def create_view_manager(single_view, server, source):
27+
if single_view:
28+
from e3sm_quickview.view_manager2 import ViewManager
29+
30+
return ViewManager(server, source)
31+
32+
from e3sm_quickview.view_manager import ViewManager
33+
34+
return ViewManager(server, source)
35+
36+
2737
class EAMApp(TrameApp):
2838
def __init__(self, server=None):
2939
super().__init__(server)
@@ -63,7 +73,7 @@ def __init__(self, server=None):
6373
self.source = EAMVisSource()
6474

6575
# Helpers
66-
self.view_manager = ViewManager(self.server, self.source)
76+
self.view_manager = create_view_manager(args.fast, self.server, self.source)
6777
self.file_browser = file_browser.ParaViewFileBrowser(
6878
self.server,
6979
prefix="pv_files",
@@ -210,13 +220,19 @@ def _build_ui(self, **_):
210220
toolbars.Animation()
211221

212222
# View of all the variables
213-
with rca.ImageStream(
214-
self.view_manager._render_window,
215-
encoder="turbo-jpeg",
216-
ctx_name="view",
217-
):
218-
# To debug vtkRenderWindow content
219-
# html.Img(src=["image?.src"], height="300px")
223+
if self.view_manager.use_image_stream:
224+
with rca.ImageStream(
225+
self.view_manager._render_window,
226+
encoder="turbo-jpeg",
227+
ctx_name="view",
228+
):
229+
# To debug vtkRenderWindow content
230+
# html.Img(src=["image?.src"], height="300px")
231+
client.ServerTemplate(
232+
name=("active_layout", "auto_layout"),
233+
v_if="variables_selected.length",
234+
)
235+
else:
220236
client.ServerTemplate(
221237
name=("active_layout", "auto_layout"),
222238
v_if="variables_selected.length",

src/e3sm_quickview/utils/cli.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,11 @@ def configure_and_parse(parser):
3131
action="store_true",
3232
help="Use user home as home for file browsing",
3333
)
34+
parser.add_argument(
35+
"--fast",
36+
dest="fast",
37+
action="store_true",
38+
help="Use a single vtkRenderWindow to share GPU memory",
39+
)
3440

3541
return parser.parse_known_args()[0]

src/e3sm_quickview/view_manager.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ def _build_ui(self):
310310
class ViewManager(TrameComponent):
311311
def __init__(self, server, source):
312312
super().__init__(server)
313+
self.use_image_stream = False
313314
self.source = source
314315
self._var2view = {}
315316
self._camera_sync_in_progress = False

src/e3sm_quickview/view_manager2.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@ def _build_ui(self):
319319
class ViewManager(TrameComponent):
320320
def __init__(self, server, source):
321321
super().__init__(server)
322+
self.use_image_stream = True
322323
self._camera = vtkCamera(parallel_projection=1)
323324
self._render_window = vtkRenderWindow()
324325
self._render_window.OffScreenRenderingOn()

0 commit comments

Comments
 (0)