Ver Fonte

don't render while picking

Alexander Rose há 6 anos atrás
pai
commit
e225ee2451
1 ficheiros alterados com 6 adições e 0 exclusões
  1. 6 0
      src/mol-view/viewer.ts

+ 6 - 0
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 }
         }