1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//! Metal rendering backend. Gated by #[cfg(backend_metal)] on the mod
//! declaration in lib.rs; compiled on macOS only.
mod allocator;
mod auto_exposure;
mod backend;
mod context;
mod cull;
mod decal;
mod descriptors;
mod encode;
mod error;
// pub(in crate::metal) so the render-graph executor, planar mirror, and probe
// bake can name the shared main-pass param structs (MainPassCamera, DrawInputs,
// GpuFrameBuffers, FaceTargets) defined in draw/main.rs.
pub(in crate::metal) mod draw;
mod fog;
mod frame_pacing;
mod glass;
mod gpu_profile;
mod graph_exec;
mod hiz;
mod hot_reload;
mod init;
mod instanced;
mod light_cull;
mod lights;
mod line;
mod metallib;
mod msl_cache;
mod parallel_encoder;
mod particle;
mod pass_timing;
mod pipeline;
mod planar;
mod post;
mod probe;
mod probe_prefilter;
mod quality;
mod raymarch;
mod raytrace;
mod resources;
mod rt_ring;
mod scoped_encoder;
mod screenshot;
mod shader_reflect;
mod slang_shaders;
mod streaming;
mod text_upload;
mod texture;
mod transient;
mod transient_pool;
mod transparent;
mod water;
mod world_shaders;
// GPU-free host-side pieces live in core's `render` module (compiled
// unconditionally so their unit tests count toward coverage); re-exported here
// so the backend keeps its `super::uniforms` / `crate::metal::shader_layout`
// paths. The `shader_layout` re-export is `pub` so the out-of-tree Swift app's
// FFI crate can drive `validate_stage` against the engine layouts.
pub use concinnity_core::render::metal::shader_layout;
pub(crate) use concinnity_core::render::metal::uniforms;
// `set_preview_view` / `set_embedded_pump_events` are the play-in-view
// embedding hooks the out-of-tree Swift app drives through its FFI crate; no
// crate in this workspace calls them.
pub(crate) use context::MtlContext;
pub use context::{set_embedded_pump_events, set_preview_view};
pub(crate) use gpu_profile::probe_gpu_profile;
// Build-time Metal shader-layout reflection, driven by the cook pipeline through
// the thin `ShaderBuildValidator` bridge in concinnity-dev.
pub use shader_reflect::{
ShaderLayoutIssue, metal_device_available, metal_source_defines, validate_metal_shader_layout,
};