concinnity_core/render/mod.rs
1//! The backend-agnostic, GPU-free render-prep layer: the
2//! `RenderBackend`/`SceneControl` trait seam the device backends implement, plus
3//! the record builders, render graph, and CPU-side math that turn components
4//! into GPU-ready data.
5//!
6//! Sits above [`crate::gfx`], which holds the layouts and the kernels this
7//! prepares into, and owns no device or window handle of its own: a frame's
8//! work is built here and handed to whichever backend implements the seam. The
9//! device backends (concinnity-device) and the runtime driver
10//! (concinnity-engine) are the two consumers.
11
12pub mod area_light;
13pub mod backend;
14pub mod backend_init;
15pub mod call_buffer;
16pub mod chunk_window;
17pub mod csm;
18pub mod cursor;
19pub mod decal;
20pub mod display_mode;
21pub mod draw_slot;
22pub mod error;
23pub mod feedback;
24pub mod frame_dirty;
25pub mod fullscreen;
26pub mod hdr_output;
27pub mod input;
28pub mod keymap;
29pub mod lights;
30pub mod ltc;
31pub mod mipmap;
32pub mod ops;
33pub mod overlay_maps;
34pub mod parallel_ctx;
35pub mod particles;
36pub mod pass_timing;
37pub mod planar_reflection;
38pub mod reflection_probe;
39pub mod render_graph;
40pub mod rt_geom;
41pub mod rt_refit;
42pub mod rt_topology;
43pub mod scene_flow;
44pub mod scene_residency;
45pub mod shaders;
46pub mod shadow_bias;
47pub mod shadow_schedule;
48pub mod skinned_pool;
49pub mod slang_programs;
50pub mod slang_source;
51pub mod slot_rewrites;
52pub mod snapshot;
53pub mod spot_shadow;
54pub mod sprite;
55pub mod streaming;
56pub mod text;
57pub mod transparent;
58
59/// The `#[repr(C)]` blocks the CPU uploads into the single-source `.slang`
60/// shaders, declared once for every backend (see `uniforms/mod.rs`).
61pub mod uniforms;
62
63pub mod volumetric_fog;
64
65/// GPU-free host-side layout contract for the Metal backend's shader structs
66/// (uniform structs, math, shader-layout asserts). Metal-specific but device-free,
67/// so it is compiled unconditionally and its layout tests run on every platform's
68/// CI. The Metal backend (concinnity-device) re-exports it under its own `metal`.
69pub mod metal;
70
71/// The same for the DirectX and Vulkan backends: their repr(C) uniform / probe
72/// structs + GPU-timing slot arithmetic (mirrored in the HLSL / GLSL shaders).
73/// Backend-specific but device-free (plain repr(C), no windows/ash types), so
74/// they compile unconditionally and their layout tests count toward coverage.
75/// The DirectX / Vulkan backends (concinnity-device) re-export them under their
76/// own `directx` / `vulkan`.
77pub mod directx;
78pub mod vulkan;