@@ -24,6 +24,7 @@ import vtkPlaneManipulator from '@kitware/vtk.js/Widgets/Manipulators/PlaneManip
2424import vtkPolyData from '@kitware/vtk.js/Common/DataModel/PolyData' ;
2525import vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer' ;
2626import vtkResliceCursorWidget from '@kitware/vtk.js/Widgets/Widgets3D/ResliceCursorWidget' ;
27+ import vtkURLExtract from '@kitware/vtk.js/Common/Core/URLExtract' ;
2728import vtkWidgetManager from '@kitware/vtk.js/Widgets/Core/WidgetManager' ;
2829import widgetBehavior from '@kitware/vtk.js/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior' ;
2930
@@ -34,16 +35,21 @@ import spineJSON from './spine_centerline.json';
3435const volumePath = `${ __BASE_PATH__ } /data/volume/LIDC2.vti` ;
3536const centerlineJsons = { Aorta : aortaJSON , Spine : spineJSON } ;
3637const centerlineKeys = Object . keys ( centerlineJsons ) ;
38+ const userParams = vtkURLExtract . extractURLParameters ( ) ;
39+ const viewAPI = userParams . viewAPI || 'WebGL' ;
3740
3841// ----------------------------------------------------------------------------
3942// Standard rendering code setup
4043// ----------------------------------------------------------------------------
4144
42- const fullScreenRenderer = vtkFullScreenRenderWindow . newInstance ( ) ;
45+ const fullScreenRenderer = vtkFullScreenRenderWindow . newInstance ( {
46+ defaultViewAPI : viewAPI ,
47+ } ) ;
4348const stretchRenderer = fullScreenRenderer . getRenderer ( ) ;
4449const renderWindow = fullScreenRenderer . getRenderWindow ( ) ;
4550const gui = new GUI ( ) ;
4651const params = {
52+ viewAPI,
4753 Angle : 0 ,
4854 Animate : false ,
4955 Centerline : centerlineKeys [ 0 ] ,
@@ -59,6 +65,15 @@ const interactor = renderWindow.getInteractor();
5965interactor . setInteractorStyle ( vtkInteractorStyleImage . newInstance ( ) ) ;
6066interactor . setDesiredUpdateRate ( 15.0 ) ;
6167
68+ gui
69+ . add ( params , 'viewAPI' , [ 'WebGL' , 'WebGPU' ] )
70+ . name ( 'Renderer' )
71+ . onChange ( ( api ) => {
72+ const query = new URLSearchParams ( window . location . search ) ;
73+ query . set ( 'viewAPI' , api ) ;
74+ window . location . search = query . toString ( ) ;
75+ } ) ;
76+
6277// Reslice Cursor Widget
6378const stretchPlane = 'Y' ;
6479const crossPlane = 'Z' ;
0 commit comments