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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//! concinnity-cook: the build side, kept out of the runtime foundation so that
//! foundation carries none of the build-only dependencies (fbxcel, shaderc,
//! sha2, kira). This crate turns world.jsonl + source files into the binary
//! blobs the runtime reads; it depends on concinnity-core and core has no edge
//! back into it.
//!
//! The stages read in order: `authoring` is the authored model and the type
//! vocabulary it is written in, `build_only` expands the types that never reach
//! a blob, `check` validates the expanded world, and the compile path turns
//! what is left into payloads. That path is three groups plus the orchestration
//! that sequences them: `import` reads the artist-supplied source files,
//! `codec` decodes the container and image formats they carry, `compile` turns
//! an asset's args and sources into its payload, and `pipeline` / `blob` /
//! `cache` at the root drive the whole run.
//!
//! Bridge: the vocabulary and compute modules below are re-exported crate-wide
//! so code moved here keeps resolving its `crate::{components,ecs,gfx,result}`
//! paths. `crate::components` is the runtime half only; the authoring-only
//! types this crate expands away are named from
//! `crate::authoring::registry::build_only` where they are used, so a use site
//! says which half it works on. The payload *decoders* and shared payload types
//! live in `concinnity_core::bake`; this crate's modules call back into them.
//! The source importers parse artist-supplied files, so a panic here is a crash
//! on a malformed asset rather than a bug. Invariants that genuinely cannot fail
//! use `expect` with the invariant named; tests unwrap freely.
pub use gfx;
pub use ;
// The vocabulary's ECS surface, with the build-time name interner shadowing its
// `asset_id`: the interner keeps a per-thread table, so it lives in
// `concinnity_host::thread` and re-exports the vocabulary's `AssetId` /
// `AssetRef`.
pub
// The source-asset lookup lives in `concinnity_host::store`, re-exported so
// cook code keeps naming it under `crate::source`. It resolves against a
// directory its caller supplies; every build threads that root down from its
// entry point rather than reading one for itself.
pub use source;
// Build-host API, re-exported deliberately: a host driving the pipeline (the
// CLI, an example harness) works against cook alone, the way a runtime host
// works against concinnity-engine. `paths` is the state tree cook builds into
// (anchoring it, locating `data/`, and naming the `assets/` a host passes as a
// build's search root); `platform` is the shader-platform vocabulary a host
// names the backend it cooks for with.
pub use platform;
pub use paths;
// The authoring type vocabulary, bound at the root so the compile path keeps
// resolving `crate::registry` without naming the namespace it belongs to.
pub use registry;
pub
pub
/// The authored world model: world.jsonl parsing and I/O, the type vocabulary,
/// the asset cross-reference metadata, the typed spec vocabulary, and the
/// build-only args schemas. Everything the cook reads before it compiles
/// anything.
/// The build-time expansion passes: one module per build-only asset type, plus
/// preset loading and the build front-half orchestrator.
// Container and image format decoders, shared by the compilers that encode
// their output.
pub
/// The compile path: per-asset payload compilers plus the whole-world passes
/// that run with them.
// Stat-based identity behind the cook's read memos, and the settle window that
// keeps a same-tick equal-length rewrite from being served stale.
/// Source-file readers: the scene expansion and the container readers it
/// dispatches into.
// Public build API: the entry points the CLI, the editor FFI, and the infra
// server call. The runtime-side decode API stays in concinnity-core.
pub use prepare_world;
pub use ;