@@ -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
// ----------------------------------------------------------------------------
@@ -1238,6 +1209,41 @@ function vtkOpenGLRenderWindow(publicAPI, model) {
1238
1209
) ;
1239
1210
}
1240
1211
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
+
1241
1247
// ----------------------------------------------------------------------------
1242
1248
1243
1249
export function extend ( publicAPI , model , initialValues = { } ) {
@@ -1246,35 +1252,24 @@ export function extend(publicAPI, model, initialValues = {}) {
1246
1252
// Inheritance
1247
1253
vtkRenderWindowViewNode . extend ( publicAPI , model , initialValues ) ;
1248
1254
1249
- // Create internal instances
1255
+ // model.canvas needs to be set to model before calling other setters
1250
1256
model . canvas = document . createElement ( 'canvas' ) ;
1251
1257
model . canvas . style . width = '100%' ;
1252
1258
createGLContext ( ) ;
1253
1259
1254
- if ( ! initialValues . selector ) {
1255
- initialValues . selector = vtkOpenGLHardwareSelector . newInstance ( ) ;
1256
- initialValues . selector . setOpenGLRenderWindow ( publicAPI ) ;
1257
- }
1258
-
1259
1260
// 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' ;
1269
1267
1270
1268
initialValues . myFactory = vtkOpenGLViewNodeFactory . newInstance ( ) ;
1271
1269
/* eslint-disable no-use-before-define */
1272
1270
initialValues . myFactory . registerOverride ( 'vtkRenderWindow' , newInstance ) ;
1273
1271
/* eslint-enable no-use-before-define */
1274
1272
1275
- initialValues . shaderCache = vtkShaderCache . newInstance ( ) ;
1276
- initialValues . shaderCache . setOpenGLRenderWindow ( publicAPI ) ;
1277
-
1278
1273
// setup default forward pass rendering
1279
1274
initialValues . renderPasses [ 0 ] = vtkForwardPass . newInstance ( ) ;
1280
1275
@@ -1311,6 +1306,9 @@ export function extend(publicAPI, model, initialValues = {}) {
1311
1306
1312
1307
// Object methods
1313
1308
vtkOpenGLRenderWindow ( publicAPI , model ) ;
1309
+
1310
+ initialValues . selector . setOpenGLRenderWindow ( publicAPI ) ;
1311
+ initialValues . shaderCache . setOpenGLRenderWindow ( publicAPI ) ;
1314
1312
}
1315
1313
1316
1314
// ----------------------------------------------------------------------------
0 commit comments