@@ -204,25 +204,29 @@ proto.tryCreatePlot = function() {
204
204
if ( scene . staticMode || ! firstInit ) {
205
205
success = false ;
206
206
} else { // try second time
207
- try {
208
- // invert preserveDrawingBuffer setup which could be resulted from is-mobile not detecting the right device
209
- Lib . warn ( [
210
- 'webgl setup failed possibly due to' ,
211
- preserveDrawingBuffer ? 'disabling' : 'enabling' ,
212
- 'preserveDrawingBuffer config.' ,
213
- 'The device may not be supported by is-mobile module!' ,
214
- 'Inverting preserveDrawingBuffer option in second attempt to create webgl scene.'
215
- ] . join ( ' ' ) ) ;
216
-
217
- // invert preserveDrawingBuffer
218
- preserveDrawingBuffer = opts . glOptions . preserveDrawingBuffer = ! opts . glOptions . preserveDrawingBuffer ;
219
-
220
- scene . glplot = createPlot ( opts ) ;
221
- } catch ( e ) {
222
- // revert changes to preserveDrawingBuffer
223
- preserveDrawingBuffer = opts . glOptions . preserveDrawingBuffer = ! opts . glOptions . preserveDrawingBuffer ;
224
-
207
+ if ( preserveDrawingBuffer ) {
225
208
success = false ;
209
+ } else {
210
+ try {
211
+ // enable preserveDrawingBuffer setup
212
+ // in case is-mobile not detecting the right device
213
+ Lib . warn ( [
214
+ 'webgl setup failed possibly due to' ,
215
+ 'false preserveDrawingBuffer config.' ,
216
+ 'The mobile/tablet device may not be detected by is-mobile module.' ,
217
+ 'Enabling preserveDrawingBuffer in second attempt to create webgl scene...'
218
+ ] . join ( ' ' ) ) ;
219
+
220
+ // invert preserveDrawingBuffer
221
+ preserveDrawingBuffer = opts . glOptions . preserveDrawingBuffer = true ;
222
+
223
+ scene . glplot = createPlot ( opts ) ;
224
+ } catch ( e ) {
225
+ // revert changes to preserveDrawingBuffer
226
+ preserveDrawingBuffer = opts . glOptions . preserveDrawingBuffer = false ;
227
+
228
+ success = false ;
229
+ }
226
230
}
227
231
}
228
232
}
0 commit comments