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 bvh;
16pub mod call_buffer;
17pub mod chunk_window;
18pub mod csm;
19pub mod cursor;
20pub mod decal;
21pub mod display_mode;
22pub mod draw_slot;
23pub mod error;
24pub mod feedback;
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_schedule;
47pub mod skinned_pool;
48pub mod slang_programs;
49pub mod slang_source;
50pub mod slot_rewrites;
51pub mod snapshot;
52pub mod spot_shadow;
53pub mod sprite;
54pub mod streaming;
55pub mod text;
56pub mod transparent;
57
58/// The `#[repr(C)]` blocks the CPU uploads into the single-source `.slang`
59/// shaders, declared once for every backend (see `uniforms/mod.rs`).
60pub mod uniforms;
61
62pub mod volumetric_fog;
63
64/// GPU-free host-side layout contract for the Metal backend's shader structs
65/// (uniform structs, math, shader-layout asserts). Metal-specific but device-free,
66/// so it is compiled unconditionally and its layout tests run on every platform's
67/// CI. The Metal backend (concinnity-device) re-exports it under its own `metal`.
68pub mod metal;
69
70/// The same for the DirectX and Vulkan backends: their repr(C) uniform / probe
71/// structs + GPU-timing slot arithmetic (mirrored in the HLSL / GLSL shaders).
72/// Backend-specific but device-free (plain repr(C), no windows/ash types), so
73/// they compile unconditionally and their layout tests count toward coverage.
74/// The DirectX / Vulkan backends (concinnity-device) re-export them under their
75/// own `directx` / `vulkan`.
76pub mod directx;
77pub mod vulkan;