Route retained readbacks through GL backend

This commit is contained in:
2026-06-04 23:20:06 +02:00
parent 9190e9053a
commit 2a4698e9f6
5 changed files with 88 additions and 34 deletions

View File

@@ -1105,7 +1105,10 @@ formats to `pp_renderer_gl`, and its CPU lightmap row dispatch now uses the
shared legacy `parallel_for` helper rather than platform-specific worker APIs.
Its live heightmap draw and bake paths now execute depth/blend state changes,
depth clears, color-write-mask toggles, active texture selection, and bake
viewport changes through tested `pp_renderer_gl` dispatch adapters.
viewport changes through tested `pp_renderer_gl` dispatch adapters. Its desktop
texture-resize path now reuses `Texture2D::get_image()`, so grid texture
readback also goes through the tested framebuffer-backed texture readback
dispatch instead of direct `glGetTexImage`.
Legacy `util.cpp` OpenGL error naming and `gl_state` save/restore now delegate
error codes, state queries, framebuffer targets, texture binding targets, and
active texture units to `pp_renderer_gl`.
@@ -2029,8 +2032,9 @@ Results:
blend/depth state execution, active texture unit switches, transform/cut
viewport execution, 2D framebuffer-to-texture copy dispatch, RGBA8 readback
formats, and RTT-backed transform history region readbacks through the
renderer GL backend mapping. The retained canvas-tip pick readback remains
direct legacy OpenGL until the readback boundary is finished under DEBT-0036.
renderer GL backend mapping. Canvas-tip pick readback now routes through the
tested framebuffer readback dispatch using the active read framebuffer, with
only a local OpenGL adapter endpoint retained in `src/canvas_modes.cpp`.
- `NodeCanvas` panorama UI rendering now routes sampler defaults, saved
viewport/clear/blend/depth/scissor state, tested viewport and clear-color
query dispatch, color clears, clear-color restore, active texture units,
@@ -2066,7 +2070,9 @@ Results:
- `NodePanelGrid` live heightmap drawing and bake setup now route depth/blend
state, depth clears, color-write-mask toggles, active texture selection, and
bake viewport execution through tested renderer GL backend dispatch
contracts.
contracts. Its desktop texture-resize readback now uses the retained
`Texture2D::get_image()` helper, so it consumes the same tested
framebuffer-backed texture readback dispatch instead of `glGetTexImage`.
- Retained simple UI draw paths now share `legacy_ui_gl_dispatch` for
blend-state execution, fallback 2D texture unbinds, `NodeViewport` viewport
query/restore, color-buffer clear, and clear-color restore. This covers