Route paint render state through GL backend

This commit is contained in:
2026-06-04 22:19:54 +02:00
parent 24197c5f7e
commit d55f26d637
7 changed files with 304 additions and 73 deletions

View File

@@ -1108,9 +1108,17 @@ active texture units to `pp_renderer_gl`.
state, viewport/clear-color queries, active texture unit execution, fallback
2D texture unbinds, 2D texture targets, copy targets, sampler filters/wraps,
and destination-feedback copy/fetch decisions to `pp_renderer_gl` and
`pp_paint_renderer`. Retained `Canvas` stroke/thumbnail paths and `NodeCanvas`
`pp_paint_renderer`. Its live stroke-mixer and brush-preview viewport,
scissor, and depth/blend state changes now also execute through tested
`pp_renderer_gl` dispatch with only local OpenGL adapter endpoints retained.
Retained `Canvas` stroke/thumbnail/object/export paths and `NodeCanvas`
panorama rendering use the same tested active-texture dispatch for their
texture-unit switches.
texture-unit switches, and their live viewport, scissor, and generic
depth/blend/scissor capability changes now route through the same backend
dispatch contracts.
Desktop HMD eye rendering now routes eye framebuffer viewport changes through
the tested `pp_renderer_gl` viewport dispatch while platform VR SDK bridges
remain isolated for later platform-shell extraction.
Legacy `Texture2D`, `TextureManager`, `Sampler`, and `RTT` public headers no
longer expose raw OpenGL enum defaults; default texture formats, sampler
filters/wraps, and render-target formats are resolved through backend-owned
@@ -2005,6 +2013,8 @@ Results:
blend/depth state snapshots and restores, depth clears, active texture units,
and fallback 2D texture unbinds through the renderer GL backend mapping;
platform VR SDK bridges remain isolated for later platform-shell extraction.
Eye framebuffer viewport execution in the retained HMD path also routes
through tested `pp_renderer_gl` viewport dispatch.
- Canvas mode overlay, mask, and transform paths now route generic OpenGL
blend/depth state, active texture units, 2D framebuffer-to-texture copy
dispatch, RGBA8 readback formats, and RTT-backed transform history region
@@ -2013,6 +2023,8 @@ Results:
viewport/clear/blend/depth/scissor state, color clears, active texture units,
fallback 2D texture unbinds, 2D framebuffer-to-texture copy dispatch, and
RGBA8 render-target formats through the renderer GL backend mapping.
Its live viewport and generic blend/depth/scissor capability changes now
execute through tested `pp_renderer_gl` dispatch adapters.
- Canvas resource setup now routes stroke-buffer RGBA8/RGBA16F/RGBA32F
formats, flood-fill texture upload format/type, brush/stencil/mix sampler
filters and wraps, and cube-strip import channel formats through the renderer
@@ -2021,7 +2033,8 @@ Results:
- Early canvas draw helpers now route pick readbacks, stroke mixer depth/scissor
and blend state, saved viewport/clear-state queries, active texture units,
fallback 2D texture unbinds, and stroke background copy targets through the
renderer GL backend mapping.
renderer GL backend mapping. Stroke mixer viewport/scissor execution also
routes through the tested backend dispatch contract.
- Canvas stroke commit now routes saved viewport/clear/blend state, history
readbacks, active texture units, fallback 2D texture unbinds, and layer
compositing copy targets through the renderer GL backend mapping; the
@@ -2062,6 +2075,10 @@ Results:
framebuffer copy targets, and depth renderbuffer allocation plus framebuffer
depth attach/detach through tested renderer GL backend dispatch contracts;
`src/canvas.cpp` no longer contains raw `GL_*` constants.
- Retained Canvas, NodeCanvas, NodeStrokePreview, and HMD viewport/scissor/
capability execution now compiles through the renderer GL backend dispatch
adapters with `pp_legacy_paint_document`, `pp_panopainter_ui`, and
`panopainter_app`.
- Windows desktop OpenGL context creation now consumes a tested
`windows_wgl_core_context_3_3_config()` catalog from `pp_renderer_gl`, moving
the active WGL context/pixel-format attribute literals out of the platform