Skip to content

rendering: integrate Coin render layers with FreeCAD - #45

Closed
tritao wants to merge 8 commits into
draw-list-history-v2from
stack/freecad-compat
Closed

rendering: integrate Coin render layers with FreeCAD#45
tritao wants to merge 8 commits into
draw-list-history-v2from
stack/freecad-compat

Conversation

@tritao

@tritao tritao commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Add the render-layer and multi-stage orchestration needed by FreeCAD on top of the retained DrawList manager integration.

  • Add explicit `Background`, `Main`, `AfterMain`, and `Foreground` render stages.
  • Add `SoRenderLayerGroup` for semantic subtree placement and local rendering behavior.
  • Support layer-local viewport overrides consistently in LegacyGL and DrawList traversal.
  • Support scoped depth clearing at the correct layer boundary and effective viewport.
  • Add manager-owned background and foreground roots with sensors and invalidation.
  • Add after-main traversal callbacks while preserving deterministic stage ordering.
  • Apply manager lighting policy consistently across all render stages.
  • Expose the concrete manager hooks required by FreeCAD without introducing a generalized render graph or pass scheduler.
  • Support orderly backend resource release while a GL context is valid.
  • Support no-GL resource discard after context loss and clean reinitialization on a new context.
  • Preserve picking resources correctly across both release/reinitialize and discard/context-replacement paths.
  • Add focused native coverage for stage ordering, foreground placement, viewport behavior, scoped depth clearing, invalidation, lighting, context recovery, and picking after resource recreation.

The retained IR remains backend-neutral and the OpenGL backend remains responsible only for executing retained commands and managing GPU resources. LegacyGL provides compatibility behavior without defining the retained architecture.

Stack

Layer 16/16, based on PR #33.

@tritao tritao changed the title stack/freecad compat rendering: integrate Coin render layers with FreeCAD Aug 10, 2026
@tritao
tritao force-pushed the draw-list-history-v2 branch 2 times, most recently from 521a1be to dee06cb Compare August 11, 2026 10:50
@tritao
tritao force-pushed the stack/freecad-compat branch 2 times, most recently from e40826b to 9319a27 Compare August 11, 2026 13:15
@tritao
tritao force-pushed the draw-list-history-v2 branch from dee06cb to 9e9914d Compare August 11, 2026 13:35
@tritao
tritao force-pushed the stack/freecad-compat branch from 9319a27 to 8db4734 Compare August 11, 2026 13:35
@tritao
tritao force-pushed the draw-list-history-v2 branch from 9e9914d to 47ce8d9 Compare August 11, 2026 14:05
@tritao
tritao force-pushed the stack/freecad-compat branch from 8db4734 to 20b38a6 Compare August 11, 2026 14:05
@tritao
tritao force-pushed the stack/freecad-compat branch from 06efa46 to 1e25001 Compare August 11, 2026 15:25
@tritao
tritao force-pushed the draw-list-history-v2 branch from 47ce8d9 to deb89ee Compare August 11, 2026 15:48
@tritao
tritao force-pushed the stack/freecad-compat branch from 1e25001 to a7cd095 Compare August 11, 2026 15:48
@tritao
tritao force-pushed the draw-list-history-v2 branch from deb89ee to fab1b24 Compare August 11, 2026 15:57
@tritao
tritao force-pushed the stack/freecad-compat branch 2 times, most recently from cb7bc43 to 7d93db4 Compare August 11, 2026 16:13
@tritao
tritao force-pushed the draw-list-history-v2 branch from fab1b24 to 68b725b Compare August 11, 2026 16:13
@tritao
tritao force-pushed the stack/freecad-compat branch from 7d93db4 to fb10aec Compare August 11, 2026 17:49
@tritao
tritao force-pushed the draw-list-history-v2 branch from 68b725b to ed52691 Compare August 11, 2026 17:49
@tritao
tritao force-pushed the stack/freecad-compat branch from fb10aec to 87ebff7 Compare August 11, 2026 18:38
@tritao
tritao force-pushed the draw-list-history-v2 branch from ed52691 to a1476e9 Compare August 11, 2026 18:38
@tritao
tritao force-pushed the stack/freecad-compat branch 3 times, most recently from 341b26b to 7cc698d Compare August 12, 2026 14:15
@tritao
tritao force-pushed the draw-list-history-v2 branch from 28d4e9d to 0350304 Compare August 12, 2026 14:15
@tritao
tritao force-pushed the stack/freecad-compat branch from 7cc698d to 802923f Compare August 12, 2026 14:24
@tritao
tritao force-pushed the draw-list-history-v2 branch from 0350304 to 33855df Compare August 12, 2026 14:24
@tritao
tritao force-pushed the stack/freecad-compat branch from 802923f to 52fe9a5 Compare August 12, 2026 14:25
@tritao
tritao force-pushed the draw-list-history-v2 branch from 33855df to e320a74 Compare August 12, 2026 14:25
@tritao
tritao force-pushed the stack/freecad-compat branch from 52fe9a5 to 9bf3777 Compare August 12, 2026 14:31
@tritao
tritao force-pushed the stack/freecad-compat branch from ee5fd9c to 050aad4 Compare August 14, 2026 18:30
@tritao
tritao force-pushed the draw-list-history-v2 branch from 71f92d5 to 888c4f8 Compare August 14, 2026 18:46
@tritao
tritao force-pushed the stack/freecad-compat branch from 050aad4 to cf9c4ed Compare August 14, 2026 18:46
@tritao
tritao force-pushed the draw-list-history-v2 branch from 888c4f8 to 97118f1 Compare August 14, 2026 19:30
@tritao
tritao force-pushed the stack/freecad-compat branch 2 times, most recently from 685f214 to f9702af Compare August 14, 2026 19:49
@tritao
tritao force-pushed the draw-list-history-v2 branch 2 times, most recently from bbef684 to 962af42 Compare August 14, 2026 20:25
@tritao
tritao force-pushed the stack/freecad-compat branch 3 times, most recently from d24c1ce to 28ceb9e Compare August 14, 2026 21:38
@tritao
tritao force-pushed the draw-list-history-v2 branch from 1d05975 to 8208011 Compare August 14, 2026 21:38
@tritao
tritao force-pushed the stack/freecad-compat branch from 28ceb9e to e2bf344 Compare August 14, 2026 22:46
@tritao
tritao force-pushed the draw-list-history-v2 branch from 8208011 to 8c43fd9 Compare August 14, 2026 22:46
@tritao
tritao force-pushed the stack/freecad-compat branch from e2bf344 to 98afa26 Compare August 14, 2026 23:21
@tritao
tritao force-pushed the draw-list-history-v2 branch 2 times, most recently from b7d43cf to 715c5d3 Compare August 14, 2026 23:42
@tritao
tritao force-pushed the stack/freecad-compat branch from 98afa26 to 0f5a38e Compare August 14, 2026 23:42
@tritao
tritao force-pushed the draw-list-history-v2 branch from 715c5d3 to e5dbe82 Compare August 15, 2026 00:03
@tritao
tritao force-pushed the stack/freecad-compat branch 2 times, most recently from a03de09 to 62ae269 Compare August 15, 2026 00:05
@tritao

tritao commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator Author

Superseded by the rebuilt layer stack in #54 and #55, based on the rewritten picking layer #52.

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