@@ -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// ----------------------------------------------------------------------------
@@ -1238,6 +1209,41 @@ function vtkOpenGLRenderWindow(publicAPI, model) {
12381209 ) ;
12391210}
12401211
1212+ // ----------------------------------------------------------------------------
1213+ // Object factory
1214+ // ----------------------------------------------------------------------------
1215+
1216+ function defaultValues ( initialValues ) {
1217+ return {
1218+ // Internal
1219+ selector : vtkOpenGLHardwareSelector . newInstance ( ) ,
1220+ bgImage : new Image ( ) ,
1221+ _textureResourceIds : new Map ( ) ,
1222+ shaderCache : vtkShaderCache . newInstance ( ) ,
1223+
1224+ cullFaceEnabled : false ,
1225+ initialized : false ,
1226+ context : null ,
1227+ cursorVisibility : true ,
1228+ cursor : 'pointer' ,
1229+ textureUnitManager : null ,
1230+ containerSize : null ,
1231+ renderPasses : [ ] ,
1232+ notifyStartCaptureImage : false ,
1233+ webgl2 : false ,
1234+ defaultToWebgl2 : true , // attempt webgl2 on by default
1235+ activeFramebuffer : null ,
1236+ xrSession : null ,
1237+ xrSessionIsAR : false ,
1238+ xrReferenceSpace : null ,
1239+ xrSupported : true ,
1240+ imageFormat : 'image/png' ,
1241+ useOffScreen : false ,
1242+ useBackgroundImage : false ,
1243+ ...initialValues ,
1244+ } ;
1245+ }
1246+
12411247// ----------------------------------------------------------------------------
12421248
12431249export function extend ( publicAPI , model , initialValues = { } ) {
@@ -1246,35 +1252,24 @@ export function extend(publicAPI, model, initialValues = {}) {
12461252 // Inheritance
12471253 vtkRenderWindowViewNode . extend ( publicAPI , model , initialValues ) ;
12481254
1249- // Create internal instances
1255+ // model.canvas needs to be set to model before calling other setters
12501256 model . canvas = document . createElement ( 'canvas' ) ;
12511257 model . canvas . style . width = '100%' ;
12521258 createGLContext ( ) ;
12531259
1254- if ( ! initialValues . selector ) {
1255- initialValues . selector = vtkOpenGLHardwareSelector . newInstance ( ) ;
1256- initialValues . selector . setOpenGLRenderWindow ( publicAPI ) ;
1257- }
1258-
12591260 // Create internal bgImage
1260- model . bgImage = new Image ( ) ;
1261- model . bgImage . style . position = 'absolute' ;
1262- model . bgImage . style . left = '0' ;
1263- model . bgImage . style . top = '0' ;
1264- model . bgImage . style . width = '100%' ;
1265- model . bgImage . style . height = '100%' ;
1266- model . bgImage . style . zIndex = '-1' ;
1267-
1268- model . _textureResourceIds = new Map ( ) ;
1261+ initialValues . bgImage . style . position = 'absolute' ;
1262+ initialValues . bgImage . style . left = '0' ;
1263+ initialValues . bgImage . style . top = '0' ;
1264+ initialValues . bgImage . style . width = '100%' ;
1265+ initialValues . bgImage . style . height = '100%' ;
1266+ initialValues . bgImage . style . zIndex = '-1' ;
12691267
12701268 initialValues . myFactory = vtkOpenGLViewNodeFactory . newInstance ( ) ;
12711269 /* eslint-disable no-use-before-define */
12721270 initialValues . myFactory . registerOverride ( 'vtkRenderWindow' , newInstance ) ;
12731271 /* eslint-enable no-use-before-define */
12741272
1275- initialValues . shaderCache = vtkShaderCache . newInstance ( ) ;
1276- initialValues . shaderCache . setOpenGLRenderWindow ( publicAPI ) ;
1277-
12781273 // setup default forward pass rendering
12791274 initialValues . renderPasses [ 0 ] = vtkForwardPass . newInstance ( ) ;
12801275
@@ -1311,6 +1306,9 @@ export function extend(publicAPI, model, initialValues = {}) {
13111306
13121307 // Object methods
13131308 vtkOpenGLRenderWindow ( publicAPI , model ) ;
1309+
1310+ initialValues . selector . setOpenGLRenderWindow ( publicAPI ) ;
1311+ initialValues . shaderCache . setOpenGLRenderWindow ( publicAPI ) ;
13141312}
13151313
13161314// ----------------------------------------------------------------------------
0 commit comments