Skip to content
Snippets Groups Projects
Commit e225ee24 authored by Alexander Rose's avatar Alexander Rose
Browse files

don't render while picking

parent 205fd259
No related branches found
No related tags found
No related merge requests found
...@@ -110,6 +110,7 @@ namespace Viewer { ...@@ -110,6 +110,7 @@ namespace Viewer {
const groupPickTarget = createRenderTarget(ctx, pickWidth, pickHeight) const groupPickTarget = createRenderTarget(ctx, pickWidth, pickHeight)
let pickDirty = true let pickDirty = true
let isPicking = false
let drawPending = false let drawPending = false
let lastRenderTime = -1 let lastRenderTime = -1
const prevProjectionView = Mat4.zero() const prevProjectionView = Mat4.zero()
...@@ -149,6 +150,7 @@ namespace Viewer { ...@@ -149,6 +150,7 @@ namespace Viewer {
} }
function render(variant: RenderVariant, force?: boolean) { function render(variant: RenderVariant, force?: boolean) {
if (isPicking) return false
// const p = scene.boundingSphere.center // const p = scene.boundingSphere.center
// console.log(p[0], p[1], p[2]) // console.log(p[0], p[1], p[2])
// Vec3.set(controls.target, p[0], p[1], p[2]) // Vec3.set(controls.target, p[0], p[1], p[2])
...@@ -226,6 +228,8 @@ namespace Viewer { ...@@ -226,6 +228,8 @@ namespace Viewer {
function identify(x: number, y: number): PickingId | undefined { function identify(x: number, y: number): PickingId | undefined {
if (pickDirty) return undefined if (pickDirty) return undefined
isPicking = true
x *= ctx.pixelRatio x *= ctx.pixelRatio
y *= ctx.pixelRatio y *= ctx.pixelRatio
y = canvas.height - y // flip y y = canvas.height - y // flip y
...@@ -246,6 +250,8 @@ namespace Viewer { ...@@ -246,6 +250,8 @@ namespace Viewer {
ctx.readPixels(xp, yp, 1, 1, buffer) ctx.readPixels(xp, yp, 1, 1, buffer)
const groupId = decodeIdRGBA(buffer[0], buffer[1], buffer[2]) const groupId = decodeIdRGBA(buffer[0], buffer[1], buffer[2])
isPicking = false
return { objectId, instanceId, groupId } return { objectId, instanceId, groupId }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment