@@ -204,25 +204,29 @@ proto.tryCreatePlot = function() {
204204 if ( scene . staticMode || ! firstInit ) {
205205 success = false ;
206206 } 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 ) {
225208 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+ }
226230 }
227231 }
228232 }
0 commit comments