@@ -82,35 +82,6 @@ export function popMonitorGLContextCount(cb) {
82
82
return GL_CONTEXT_LISTENERS . pop ( ) ;
83
83
}
84
84
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
-
114
85
// ----------------------------------------------------------------------------
115
86
// vtkOpenGLRenderWindow methods
116
87
// ----------------------------------------------------------------------------
@@ -1249,6 +1220,41 @@ function vtkOpenGLRenderWindow(publicAPI, model) {
1249
1220
) ;
1250
1221
}
1251
1222
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
+
1252
1258
// ----------------------------------------------------------------------------
1253
1259
1254
1260
export function extend ( publicAPI , model , initialValues = { } ) {
@@ -1257,35 +1263,24 @@ export function extend(publicAPI, model, initialValues = {}) {
1257
1263
// Inheritance
1258
1264
vtkRenderWindowViewNode . extend ( publicAPI , model , initialValues ) ;
1259
1265
1260
- // Create internal instances
1266
+ // model.canvas needs to be set to model before calling other setters
1261
1267
model . canvas = document . createElement ( 'canvas' ) ;
1262
1268
model . canvas . style . width = '100%' ;
1263
1269
createGLContext ( ) ;
1264
1270
1265
- if ( ! initialValues . selector ) {
1266
- initialValues . selector = vtkOpenGLHardwareSelector . newInstance ( ) ;
1267
- initialValues . selector . setOpenGLRenderWindow ( publicAPI ) ;
1268
- }
1269
-
1270
1271
// 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' ;
1280
1278
1281
1279
initialValues . myFactory = vtkOpenGLViewNodeFactory . newInstance ( ) ;
1282
1280
/* eslint-disable no-use-before-define */
1283
1281
initialValues . myFactory . registerOverride ( 'vtkRenderWindow' , newInstance ) ;
1284
1282
/* eslint-enable no-use-before-define */
1285
1283
1286
- initialValues . shaderCache = vtkShaderCache . newInstance ( ) ;
1287
- initialValues . shaderCache . setOpenGLRenderWindow ( publicAPI ) ;
1288
-
1289
1284
// setup default forward pass rendering
1290
1285
initialValues . renderPasses [ 0 ] = vtkForwardPass . newInstance ( ) ;
1291
1286
@@ -1322,6 +1317,9 @@ export function extend(publicAPI, model, initialValues = {}) {
1322
1317
1323
1318
// Object methods
1324
1319
vtkOpenGLRenderWindow ( publicAPI , model ) ;
1320
+
1321
+ initialValues . selector . setOpenGLRenderWindow ( publicAPI ) ;
1322
+ initialValues . shaderCache . setOpenGLRenderWindow ( publicAPI ) ;
1325
1323
}
1326
1324
1327
1325
// ----------------------------------------------------------------------------
0 commit comments