Skip to content

rendering: add DrawList picking and selection - #52

Open
tritao wants to merge 10 commits into
stack/drawlist-raster-textfrom
stack/drawlist-picking
Open

rendering: add DrawList picking and selection#52
tritao wants to merge 10 commits into
stack/drawlist-raster-textfrom
stack/drawlist-picking

Conversation

@tritao

@tritao tritao commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

Builds on #50.

Purpose

The DrawList renderer needs picking and selection to identify the same scene
objects and subelements that produced the visible frame. It also needs to do
that without attaching application selection policy to the renderer or
performing hidden picking work during ordinary drawing.

This PR carries object, face, edge, and vertex identity through retained
commands, renders exact integer IDs into a dedicated OpenGL pick target, and
resolves those IDs back into normal Coin pick results. Selection and highlight
overlays consume explicit frame-local targets derived from the same retained
identity.

What changed

  • Retain compact command paths and structured object/subelement ranges.
  • Build a frame-local lookup table with exact integer pick IDs.
  • Render and query an R32UI picking target, including radius and layered-hit
    handling.
  • Reuse the retained triangle, line, point, raster, and fallback geometry used
    by visual rendering.
  • Render depth-tested, blended selection and highlight overlays from explicit
    frame-local targets.

Ownership and scope

Ordinary visual rendering does not perform picking implicitly. This layer
owns renderer-side identity, GPU picking, and overlay execution; it does not
own application identity, selection policy, manager orchestration, or render
layers.

Validation

  • Object and face/edge/vertex picking.
  • Stable scene identity through retained lookup and result resolution.
  • Radius and layered GPU pick queries.
  • Selection and highlight overlay rendering across retained geometry paths.

@tritao
tritao force-pushed the stack/drawlist-picking branch 4 times, most recently from 36ce153 to d8223b8 Compare August 15, 2026 14:57
@tritao
tritao force-pushed the stack/drawlist-picking branch from d8223b8 to 819287c Compare August 15, 2026 17:03
@tritao
tritao force-pushed the stack/drawlist-picking branch 2 times, most recently from f7fd84e to d9b5c11 Compare August 15, 2026 17:30
@tritao
tritao force-pushed the stack/drawlist-picking branch from d9b5c11 to 389d40e Compare August 15, 2026 23:32
@tritao
tritao force-pushed the stack/drawlist-picking branch 2 times, most recently from 98264cc to 80fc121 Compare August 16, 2026 00:00
@tritao
tritao force-pushed the stack/drawlist-picking branch from 80fc121 to 084f319 Compare August 16, 2026 00:03
@tritao
tritao force-pushed the stack/drawlist-picking branch from 084f319 to 324a26d Compare August 16, 2026 00:26
@tritao
tritao force-pushed the stack/drawlist-picking branch from 324a26d to 8421ca5 Compare August 16, 2026 09:49
@tritao
tritao force-pushed the stack/drawlist-picking branch from 8421ca5 to 85965ed Compare August 16, 2026 10:00
@tritao
tritao force-pushed the stack/drawlist-picking branch from 85965ed to 48fbf1c Compare August 16, 2026 10:56
@tritao
tritao force-pushed the stack/drawlist-picking branch 2 times, most recently from 85211ea to e451a45 Compare August 16, 2026 11:43
@tritao
tritao force-pushed the stack/drawlist-picking branch 2 times, most recently from 497e134 to 156c1e7 Compare August 16, 2026 20:15
@tritao
tritao force-pushed the stack/drawlist-picking branch from 156c1e7 to 8f55fe0 Compare August 16, 2026 20:20
@tritao
tritao force-pushed the stack/drawlist-picking branch from 8f55fe0 to fa20638 Compare August 17, 2026 11:40
@tritao
tritao force-pushed the stack/drawlist-picking branch from fa20638 to fa652fc Compare August 17, 2026 12:56
@tritao
tritao force-pushed the stack/drawlist-picking branch from fa652fc to 6f2b6b6 Compare August 17, 2026 13:39
@tritao
tritao force-pushed the stack/drawlist-picking branch from 6f2b6b6 to 5b1063b Compare August 17, 2026 13:43
@tritao
tritao force-pushed the stack/drawlist-picking branch from 5b1063b to d3b5ebf Compare August 17, 2026 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant