View / target / viewport split
| Handle | Carries | Does not carry |
|---|---|---|
gx3de_view | Camera, projection, background, lighting, clipping, working plane, selection, axes/navcube, local interaction state | No native window or framebuffer ownership. |
gx3de_target | Render backend/window/offscreen pixels, quality/resource policy and completed RGBA frame | No authoritative geometry. |
gx3de_viewport | Rectangle mapping one same-engine view into one target | No independent scene or camera. |
Headless and native targets
gx3de_target_create_headless produces an offscreen pixel target. gx3de_target_create_native accepts a platform-neutral window kind plus an integer native window identifier; the ABI still exposes no X11 or Win32 structure. The caller owns the host window.
Frame output
- Completed readback is top-left-first RGBA8.
gx3de_image_output_info_getreports four 8-bit RGBA components, straight alpha and sRGB transfer expectation; PNG output is untagged but expects the same transfer.gx3de_view_render_rgba/gx3de_view_write_pngcreate a temporary target for one view at explicit dimensions.- Supersampled variants accept 1–4× rendering and deterministic box downsampling subject to pixel/resource budgets.
Camera
The camera stores double-precision position, target, up vector, near/far clip and vertical FOV. Orthographic scale is explicitly controlled by gx3de_view_orthographic_height_set/get, independent of camera-target distance. Presets include six principal views, isometric, fit scene/object/selection. CORE also exposes orbit, pan, dolly and zoom helpers plus viewport projection/unprojection/ray construction.
Background, axes, navigation cube and working plane
Background may be solid or gradient; checkerboard is a viewport-stable screen-space background texture. The Navigation Cube is view-owned screen-space presentation with 26 face/edge/corner regions; CORE performs both hit testing and camera orientation. A working plane renders a view-local grid/outline and can be manipulated through the generic view-manipulation API.
Lighting
Up to four directional slots are defined by gx3de_view_lighting. dev-39 positional lamps can replace an enabled directional slot while preserving the slot model. Four standard lighting presets resolve into ordinary editable lighting state: scientific neutral, high contrast, soft diffuse and flat/unlit.
Graphics policy
The engine graphics policy is inherited by present/future targets and controls execution mode, normal/interaction LOD, MSAA/transparency, export supersampling, shadow policy, display-triangle budget, optional GPU estimate budget and worker RSS/address-space limits. In-process C callers receive worker limits as policy data; GX-TXT uses them to supervise isolated renderer workers.
| GX-TXT preset | Normal LOD | Interaction | MSAA | Transparency | Triangle budget |
|---|---|---|---|---|---|
| Low | Low | Preview | Off | Standard | 250,000 |
| Medium | Medium | Low | 2× | Standard | 500,000 |
| High | High | Medium | 4× | Depth peeling | 1,000,000 |
| Ultra | Full | Off / High | 8× | Depth peeling | 4,000,000 |
Renderer backend status
Linux uses the VTK/OpenGL path and reports actual adapter/driver plus hardware/software execution. The current Linux VTK build requires an X display even for offscreen rendering; GX-TXT can isolate the worker and retry under Mesa llvmpipe in Auto mode. A D3D11 source path/probe exists for Windows, but the dev-40 documentation explicitly does not claim a validated Windows D3D11 presentation path.