Skip to main content

appcore_render/
lib.rs

1// =============================================================================
2//        #######
3//     ###       ###     F: lib.rs
4//    ##   ## ##   ##    P: AppCore-Runtime
5//         ## ##
6//                       C: 2026/10/14 16:20:57 by dnettoRaw
7//    ##   ## ##   ##    U: 2026/10/15 10:24:40 by dnettoRaw
8//      ###########      S: 0.1.0-alpha.1
9// =============================================================================
10
11#![doc = include_str!("../README.en.md")]
12#![forbid(unsafe_code)]
13
14mod limits;
15mod resources;
16
17pub use limits::{RenderError, RenderLimits};
18pub use resources::{ResourceArena, ResourceId};
19
20#[cfg(feature = "metal")]
21mod offscreen;
22#[cfg(feature = "metal")]
23pub use offscreen::{OffscreenRenderer, RenderCapabilities};
24
25#[cfg(feature = "metal")]
26mod presentation;
27#[cfg(feature = "metal")]
28pub use presentation::{NativeRenderer, PresentationState};
29/// Explicit low-level GPU interop for deployment-owned native surface adapters.
30#[cfg(feature = "metal")]
31pub use wgpu as gpu;
32
33#[cfg(feature = "metal")]
34mod frame_admission;
35
36#[cfg(feature = "metal")]
37mod lorenz;
38#[cfg(feature = "metal")]
39pub use lorenz::LorenzCompute;
40
41mod camera;
42pub use camera::LorenzView;
43#[cfg(feature = "metal")]
44mod lorenz_scene;
45
46mod scene;
47mod scene_components;
48mod scene_storage;
49pub use scene::{SceneLimits, SceneWorld};
50pub use scene_components::{RenderBinding, Transform, Velocity};
51pub use scene_storage::{EntityId, MovingColumns, SceneInstance, SceneSnapshot};
52
53mod scene_commands;
54pub use scene_commands::{SceneCommand, SceneCommands};
55
56mod asset_data;
57mod asset_frame;
58mod assets;
59pub use asset_data::{BoundingSphere, MeshAsset, MeshVertex};
60pub use asset_frame::{PreparedInstance, PreparedScene};
61pub use assets::{AssetLimits, AssetRegistry};
62
63mod frustum;
64pub use frustum::Frustum;
65#[cfg(feature = "metal")]
66mod visibility;
67#[cfg(feature = "metal")]
68pub use visibility::{GpuVisibility, VisibilityInput};
69
70#[cfg(feature = "metal")]
71mod mesh_batch;
72#[cfg(feature = "metal")]
73mod mesh_pipeline;
74#[cfg(feature = "metal")]
75pub use mesh_batch::GpuMeshBatch;
76
77#[cfg(feature = "metal")]
78mod hiz;
79#[cfg(feature = "metal")]
80pub use hiz::HiZPyramid;
81
82#[cfg(feature = "metal")]
83mod occlusion;
84#[cfg(feature = "metal")]
85pub use occlusion::{GpuOcclusion, OcclusionInput};
86
87#[cfg(feature = "metal")]
88mod mesh_scene;
89#[cfg(feature = "metal")]
90pub use mesh_scene::{GpuMeshScene, LodSceneBatchDescriptor, LodSceneFrame, MeshBatchDescriptor};
91
92#[cfg(feature = "metal")]
93mod native_mesh;
94
95mod lorenz_parameters;
96pub use lorenz_parameters::LorenzParameters;
97
98#[cfg(feature = "metal")]
99mod frame_progress;
100#[cfg(feature = "metal")]
101pub use frame_progress::NativeFrameProgress;
102
103mod lod;
104pub use lod::{choose_lod, LodChoice, LodLevel, LodObject, LodView};
105
106#[cfg(feature = "metal")]
107mod lod_visibility;
108#[cfg(feature = "metal")]
109pub use lod_visibility::{GpuLodVisibility, LodVisibilityInput};
110
111#[cfg(feature = "metal")]
112mod lod_geometry;
113#[cfg(feature = "metal")]
114mod lod_mesh_batch;
115#[cfg(feature = "metal")]
116pub use lod_geometry::MeshLodDescriptor;
117#[cfg(feature = "metal")]
118pub use lod_mesh_batch::{GpuLodMeshBatch, LodMeshFrame};
119
120#[cfg(feature = "metal")]
121mod scene_mesh;