diff --git a/package.json b/package.json index 2652106..150ab0d 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "gl-shader": "^4.2.1", "gl-spikes3d": "^1.0.3", "glslify": "^6.1.0", - "is-mobile": "^0.2.2", + "is-mobile": "^2.0.0", "mouse-change": "^1.1.1", "ndarray": "^1.0.16" }, diff --git a/scene.js b/scene.js index 93b22b7..012afd3 100644 --- a/scene.js +++ b/scene.js @@ -12,7 +12,7 @@ var drawTriangle = require('a-big-triangle') var mouseChange = require('mouse-change') var perspective = require('gl-mat4/perspective') var createShader = require('./lib/shader') -var isMobile = require('is-mobile')() +var isMobile = require('is-mobile')({ tablet: true }) function MouseSelect() { this.mouse = [-1,-1] @@ -80,7 +80,8 @@ function createScene(options) { gl = getContext(canvas, options.glOptions || { premultipliedAlpha: true, - antialias: true + antialias: true, + preserveDrawingBuffer: isMobile }) } if(!gl) { @@ -745,8 +746,9 @@ function createScene(options) { if(stopped || scene.contextLost) { return } - requestAnimationFrame(render) + // this order is important: ios safari sometimes has sync raf redraw() + requestAnimationFrame(render) } render()