@@ -146,32 +146,28 @@ proto.tryCreatePlot = function() {
146146 try {
147147 scene . glplot = createPlot ( opts ) ;
148148 } catch ( e ) {
149- if ( scene . staticMode || ! firstInit ) {
149+ if ( scene . staticMode || ! firstInit || preserveDrawingBuffer ) {
150150 success = false ;
151151 } else { // try second time
152- if ( preserveDrawingBuffer ) {
152+ // enable preserveDrawingBuffer setup
153+ // in case is-mobile not detecting the right device
154+ Lib . warn ( [
155+ 'webgl setup failed possibly due to' ,
156+ 'false preserveDrawingBuffer config.' ,
157+ 'The mobile/tablet device may not be detected by is-mobile module.' ,
158+ 'Enabling preserveDrawingBuffer in second attempt to create webgl scene...'
159+ ] . join ( ' ' ) ) ;
160+
161+ try {
162+ // invert preserveDrawingBuffer
163+ preserveDrawingBuffer = opts . glOptions . preserveDrawingBuffer = true ;
164+
165+ scene . glplot = createPlot ( opts ) ;
166+ } catch ( e ) {
167+ // revert changes to preserveDrawingBuffer
168+ preserveDrawingBuffer = opts . glOptions . preserveDrawingBuffer = false ;
169+
153170 success = false ;
154- } else {
155- try {
156- // enable preserveDrawingBuffer setup
157- // in case is-mobile not detecting the right device
158- Lib . warn ( [
159- 'webgl setup failed possibly due to' ,
160- 'false preserveDrawingBuffer config.' ,
161- 'The mobile/tablet device may not be detected by is-mobile module.' ,
162- 'Enabling preserveDrawingBuffer in second attempt to create webgl scene...'
163- ] . join ( ' ' ) ) ;
164-
165- // invert preserveDrawingBuffer
166- preserveDrawingBuffer = opts . glOptions . preserveDrawingBuffer = true ;
167-
168- scene . glplot = createPlot ( opts ) ;
169- } catch ( e ) {
170- // revert changes to preserveDrawingBuffer
171- preserveDrawingBuffer = opts . glOptions . preserveDrawingBuffer = false ;
172-
173- success = false ;
174- }
175171 }
176172 }
177173 }
0 commit comments