withastro/astro.build

Canvas crashes(?) on mobile.

Opened this issue · 1 comments

Scrolling the screen on mobile is very laggy, and then the screen flickers for a moment and attached image's canvas area is crashing(?)

I'm using Pixel 5 and Chrome 122.0.6261.105

Screenshot_20240313-005706~2

I can see this message in console.
WebGL: CONTEXT_LOST_WEBGL: loseContext: context lost

and I did some research.
Reducing width and height of this will reduce lag, but will change the look...

const { devicePixelRatio = 1 } = window
const { width: w, height: h } = canvas.getBoundingClientRect()
const width = w * devicePixelRatio * 2
const height = h * devicePixelRatio * 2
const size = 0.1
globe = createGlobe(canvas, {
devicePixelRatio,
width,
height,
phi,
theta: 0,
dark: 1,
diffuse: 3,
scale: 1.125,
mapSamples: 10240,
mapBrightness: 5,
mapBaseBrightness: 0,
baseColor: rgb(92, 46, 154),
markerColor: rgb(200, 200, 241),
glowColor: rgb(30, 20, 50),
offset: [width * -0.3, height * 1.05],
markers: [
{ location: [50.1109, 8.6821], size },
{ location: [40.0583, -74.4057], size },
{ location: [-23.5558, -46.6396], size },
{ location: [35.6938, 139.7034], size },
{ location: [1.3521, 103.8198], size },
{ location: [-33.8688, 151.2093], size },
],
opacity: 1,
onRender: (state) => {
state.phi = phi
phi += 0.00025
},
})