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

@@ -376,11 +376,13 @@ Known local toolchain state:
`NodePanelGrid` heightmap preview and lightmap baking also consume
backend-owned texture readback formats, sampler filters, depth/blend state,
depth clears, viewport queries, color-mask booleans, active texture units,
and float render-target formats; CPU lightmap row dispatch now uses shared
`parallel_for` instead of 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.
and float render-target formats; its desktop texture-resize readback now
reuses `Texture2D::get_image()` and the tested framebuffer-backed texture
readback dispatch instead of direct `glGetTexImage`; CPU lightmap row dispatch
now uses shared `parallel_for` instead of 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.
Legacy `util.cpp` OpenGL error naming and `gl_state` save/restore also
consume backend-owned error codes, state queries, framebuffer targets,
texture binding targets, and active texture units.
@@ -434,8 +436,9 @@ Known local toolchain state:
Canvas mode overlay, mask, and transform paths also consume backend-owned
blend/depth state execution, active texture unit dispatch, transform/cut
viewport execution, 2D texture copy targets, and RGBA8 readback format tokens;
the retained canvas-tip pick readback remains direct legacy OpenGL until the
readback boundary is finished under DEBT-0036.
canvas-tip pick readback now routes through 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 also consumes backend-owned sampler
defaults, tested viewport/clear-color query dispatch, blend/depth/scissor
state, color-buffer clear dispatch, clear-color restore, active texture
@@ -664,7 +667,8 @@ Known local toolchain state:
consumed by retained `Canvas`, `CanvasLayer`, `NodeCanvas`, and
`NodeStrokePreview` draw-state paths,
tested color-write-mask dispatch consumed by retained `NodePanelGrid`
transparent heightmap rendering,
transparent heightmap rendering, tested texture readback dispatch consumed by
`NodePanelGrid` texture-resize preservation,
tested pixel-buffer allocation/readback/map/unmap/delete dispatch
consumed by retained `PBO` recording readbacks, tested framebuffer-to-texture
copy dispatch consumed by retained canvas/UI paint paths and CanvasLayer