Skip to main content

dreamwell_runtime/
scene.rs

1// Scene — bridges engine GameObjectScene to GPU rendering via GpuScene.
2// All game objects live in `GameObjectScene`. Legacy `SceneEntity` removed in v1.0.0.
3
4use dreamwell_engine::game_object::GameObjectScene;
5use dreamwell_gpu::camera::Camera;
6
7/// The runtime scene — holds the engine scene and camera.
8pub struct Scene {
9    pub camera: Camera,
10    /// Engine-side game object scene (primitives, components, hierarchy).
11    pub game_objects: GameObjectScene,
12}
13
14impl Default for Scene {
15    fn default() -> Self {
16        Self {
17            camera: Camera::default(),
18            game_objects: GameObjectScene::new("Runtime".into()),
19        }
20    }
21}
22
23impl Scene {
24    /// Number of game objects in the scene.
25    pub fn object_count(&self) -> usize {
26        self.game_objects.len()
27    }
28}