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 hiz_spd;
28pub mod input;
29pub mod keymap;
30pub mod lights;
31pub mod ltc;
32pub mod mipmap;
33pub mod model_history;
34pub mod ops;
35pub mod overlay_maps;
36pub mod parallel_ctx;
37pub mod particles;
38pub mod pass_timing;
39pub mod planar_reflection;
40pub mod reflection_probe;
41pub mod render_graph;
42pub mod rt_geom;
43pub mod rt_refit;
44pub mod rt_topology;
45pub mod scene_flow;
46pub mod scene_residency;
47pub mod shaders;
48pub mod shadow_bias;
49pub mod shadow_schedule;
50pub mod skinned_pool;
51pub mod slang_programs;
52pub mod slang_source;
53pub mod slot_rewrites;
54pub mod snapshot;
55pub mod spot_shadow;
56pub mod sprite;
57pub mod streaming;
58pub mod text;
59pub mod transparent;
60
61/// The `#[repr(C)]` blocks the CPU uploads into the single-source `.slang`
62/// shaders, declared once for every backend (see `uniforms/mod.rs`).
63pub mod uniforms;
64
65pub mod volumetric_fog;
66
67/// GPU-free host-side layout contract for the Metal backend's shader structs
68/// (uniform structs, math, shader-layout asserts). Metal-specific but device-free,
69/// so it is compiled unconditionally and its layout tests run on every platform's
70/// CI. The Metal backend (concinnity-device) re-exports it under its own `metal`.
71pub mod metal;
72
73/// The same for the DirectX and Vulkan backends: their repr(C) uniform / probe
74/// structs + GPU-timing slot arithmetic (mirrored in the HLSL / GLSL shaders).
75/// Backend-specific but device-free (plain repr(C), no windows/ash types), so
76/// they compile unconditionally and their layout tests count toward coverage.
77/// The DirectX / Vulkan backends (concinnity-device) re-export them under their
78/// own `directx` / `vulkan`.
79pub mod directx;
80pub mod vulkan;