From e225ee24515a68ca51df978bda823df0b09d72d8 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Fri, 7 Sep 2018 19:32:20 -0700 Subject: [PATCH] don't render while picking --- src/mol-view/viewer.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mol-view/viewer.ts b/src/mol-view/viewer.ts index 9cf36a5f2..4e4384cbc 100644 --- a/src/mol-view/viewer.ts +++ b/src/mol-view/viewer.ts @@ -110,6 +110,7 @@ namespace Viewer { const groupPickTarget = createRenderTarget(ctx, pickWidth, pickHeight) let pickDirty = true + let isPicking = false let drawPending = false let lastRenderTime = -1 const prevProjectionView = Mat4.zero() @@ -149,6 +150,7 @@ namespace Viewer { } function render(variant: RenderVariant, force?: boolean) { + if (isPicking) return false // const p = scene.boundingSphere.center // console.log(p[0], p[1], p[2]) // Vec3.set(controls.target, p[0], p[1], p[2]) @@ -226,6 +228,8 @@ namespace Viewer { function identify(x: number, y: number): PickingId | undefined { if (pickDirty) return undefined + isPicking = true + x *= ctx.pixelRatio y *= ctx.pixelRatio y = canvas.height - y // flip y @@ -246,6 +250,8 @@ namespace Viewer { ctx.readPixels(xp, yp, 1, 1, buffer) const groupId = decodeIdRGBA(buffer[0], buffer[1], buffer[2]) + isPicking = false + return { objectId, instanceId, groupId } } -- GitLab