@@ -82,35 +82,6 @@ export function popMonitorGLContextCount(cb) {
8282 return GL_CONTEXT_LISTENERS . pop ( ) ;
8383}
8484
85- // ----------------------------------------------------------------------------
86- // Object factory
87- // ----------------------------------------------------------------------------
88-
89- function defaultValues ( initialValues ) {
90- return {
91- cullFaceEnabled : false ,
92- initialized : false ,
93- context : null ,
94- cursorVisibility : true ,
95- cursor : 'pointer' ,
96- textureUnitManager : null ,
97- containerSize : null ,
98- renderPasses : [ ] ,
99- notifyStartCaptureImage : false ,
100- webgl2 : false ,
101- defaultToWebgl2 : true , // attempt webgl2 on by default
102- activeFramebuffer : null ,
103- xrSession : null ,
104- xrSessionIsAR : false ,
105- xrReferenceSpace : null ,
106- xrSupported : true ,
107- imageFormat : 'image/png' ,
108- useOffScreen : false ,
109- useBackgroundImage : false ,
110- ...initialValues ,
111- } ;
112- }
113-
11485// ----------------------------------------------------------------------------
11586// vtkOpenGLRenderWindow methods
11687// ----------------------------------------------------------------------------
@@ -1249,6 +1220,41 @@ function vtkOpenGLRenderWindow(publicAPI, model) {
12491220 ) ;
12501221}
12511222
1223+ // ----------------------------------------------------------------------------
1224+ // Object factory
1225+ // ----------------------------------------------------------------------------
1226+
1227+ function defaultValues ( initialValues ) {
1228+ return {
1229+ // Internal
1230+ selector : vtkOpenGLHardwareSelector . newInstance ( ) ,
1231+ bgImage : new Image ( ) ,
1232+ _textureResourceIds : new Map ( ) ,
1233+ shaderCache : vtkShaderCache . newInstance ( ) ,
1234+
1235+ cullFaceEnabled : false ,
1236+ initialized : false ,
1237+ context : null ,
1238+ cursorVisibility : true ,
1239+ cursor : 'pointer' ,
1240+ textureUnitManager : null ,
1241+ containerSize : null ,
1242+ renderPasses : [ ] ,
1243+ notifyStartCaptureImage : false ,
1244+ webgl2 : false ,
1245+ defaultToWebgl2 : true , // attempt webgl2 on by default
1246+ activeFramebuffer : null ,
1247+ xrSession : null ,
1248+ xrSessionIsAR : false ,
1249+ xrReferenceSpace : null ,
1250+ xrSupported : true ,
1251+ imageFormat : 'image/png' ,
1252+ useOffScreen : false ,
1253+ useBackgroundImage : false ,
1254+ ...initialValues ,
1255+ } ;
1256+ }
1257+
12521258// ----------------------------------------------------------------------------
12531259
12541260export function extend ( publicAPI , model , initialValues = { } ) {
@@ -1257,35 +1263,24 @@ export function extend(publicAPI, model, initialValues = {}) {
12571263 // Inheritance
12581264 vtkRenderWindowViewNode . extend ( publicAPI , model , initialValues ) ;
12591265
1260- // Create internal instances
1266+ // model.canvas needs to be set to model before calling other setters
12611267 model . canvas = document . createElement ( 'canvas' ) ;
12621268 model . canvas . style . width = '100%' ;
12631269 createGLContext ( ) ;
12641270
1265- if ( ! initialValues . selector ) {
1266- initialValues . selector = vtkOpenGLHardwareSelector . newInstance ( ) ;
1267- initialValues . selector . setOpenGLRenderWindow ( publicAPI ) ;
1268- }
1269-
12701271 // Create internal bgImage
1271- model . bgImage = new Image ( ) ;
1272- model . bgImage . style . position = 'absolute' ;
1273- model . bgImage . style . left = '0' ;
1274- model . bgImage . style . top = '0' ;
1275- model . bgImage . style . width = '100%' ;
1276- model . bgImage . style . height = '100%' ;
1277- model . bgImage . style . zIndex = '-1' ;
1278-
1279- model . _textureResourceIds = new Map ( ) ;
1272+ initialValues . bgImage . style . position = 'absolute' ;
1273+ initialValues . bgImage . style . left = '0' ;
1274+ initialValues . bgImage . style . top = '0' ;
1275+ initialValues . bgImage . style . width = '100%' ;
1276+ initialValues . bgImage . style . height = '100%' ;
1277+ initialValues . bgImage . style . zIndex = '-1' ;
12801278
12811279 initialValues . myFactory = vtkOpenGLViewNodeFactory . newInstance ( ) ;
12821280 /* eslint-disable no-use-before-define */
12831281 initialValues . myFactory . registerOverride ( 'vtkRenderWindow' , newInstance ) ;
12841282 /* eslint-enable no-use-before-define */
12851283
1286- initialValues . shaderCache = vtkShaderCache . newInstance ( ) ;
1287- initialValues . shaderCache . setOpenGLRenderWindow ( publicAPI ) ;
1288-
12891284 // setup default forward pass rendering
12901285 initialValues . renderPasses [ 0 ] = vtkForwardPass . newInstance ( ) ;
12911286
@@ -1322,6 +1317,9 @@ export function extend(publicAPI, model, initialValues = {}) {
13221317
13231318 // Object methods
13241319 vtkOpenGLRenderWindow ( publicAPI , model ) ;
1320+
1321+ initialValues . selector . setOpenGLRenderWindow ( publicAPI ) ;
1322+ initialValues . shaderCache . setOpenGLRenderWindow ( publicAPI ) ;
13251323}
13261324
13271325// ----------------------------------------------------------------------------
0 commit comments