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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//! # Gizmo Engine
//!
//! `gizmo-engine` is the all-in-one facade crate of the Gizmo game engine. It
//! re-exports the individual subsystem crates (core ECS, math, app loop,
//! physics, renderer, windowing, audio, scene, editor, UI, animation and AI)
//! and adds an ergonomic, Bevy-like convenience layer on top: [`Color`],
//! ready-made [`bundles`], a [`spawner`] API and prefabricated scene helpers.
//!
//! Note that the published *package* is named `gizmo-engine`, while the *library*
//! (and thus the crate path used in `use` statements and examples) is simply
//! `gizmo`.
//!
//! ## Feature flags
//!
//! Subsystems are gated behind Cargo features so you only compile what you need:
//!
//! - `window` — windowing via `winit`.
//! - `render` — the `wgpu`-based renderer (implies `window`).
//! - `audio` — audio playback.
//! - `physics`, `physics-dynamics`, `physics-soft` — physics subsystems.
//! - `scene` — scene (de)serialization.
//! - `editor` — the `egui`-based in-engine editor (implies `render`).
//! - `ui` — the UI subsystem.
//! - `animation` — skeletal/property animation.
//! - `scripting` — scripting support.
//! - `network` — networking / P2P deterministic rollback via `gizmo-net`.
//! - `headless` — run the app loop without a window (e.g. for servers/tests).
//!
//! The `default` feature enables a full desktop game setup (`window`, `render`,
//! `audio`, `physics`, `scene`, `editor`, `ui`, `animation`, `network`).
//!
//! ## Re-exported third-party crates
//!
//! For convenience the facade re-exports the external crates that appear in its
//! public API so downstream users do not have to add them separately:
//! [`wgpu`] and [`bytemuck`] (with `render`), [`egui`] (with `editor`) and
//! [`winit`] (with `window`).
// === Motor Alt Sistemleri ===
pub use gizmo_ai as ai;
pub use gizmo_analysis as analysis;
pub use gizmo_app as app;
pub use gizmo_core as core;
pub use gizmo_math as math;
pub use gizmo_renderer as renderer;
pub use gizmo_window as window;
// Sık kullanılan matematik tiplerini lib.rs'ten doğrudan aç:
pub use ;
pub use *;
// === Opsiyonel Modüller ===
pub use gizmo_audio as audio;
pub use gizmo_editor as editor;
pub use gizmo_scripting as scripting;
pub use gizmo_scene as scene;
pub use ron;
/// A [`scene::registry::SceneRegistry`] pre-populated with the engine's built-in
/// components **and** the scripting layer's `Script` component.
///
/// `gizmo-scene` intentionally does not depend on `gizmo-scripting` (so scene
/// save/load stays GPU-free), and therefore its
/// [`scene::registry::default_scene_registry`] omits `Script`. Use this facade
/// helper when you want scenes that round-trip script components.
pub use gizmo_ui as ui;
pub use gizmo_animation as animation;
pub use gizmo_net as net;
// === 3. Parti Re-Export (Kullanıcının ayrıca eklemesine gerek kalmasın) ===
pub use gizmo_log;
/// 1.0 kontratı: aşağıdaki dış grafik/pencere tipleri (`wgpu`, `bytemuck`,
/// `egui`, `winit`) bilinçli olarak public API'nin parçasıdır. Sürümleri ilgili
/// renderer/window crate'inin semver'ine bağlıdır; bu dış crate'lerde yapılan
/// bir major sürüm yükseltmesi facade için de kırıcı (breaking) sayılır.
pub use bytemuck;
/// 1.0 kontratı: bu dış grafik tipi bilinçli olarak public API'nin parçasıdır;
/// sürümü ilgili UI crate'inin semver'ine bağlıdır. `egui` feature'ı ile
/// (overlay UI / editör) açılır.
pub use egui;
/// 1.0 kontratı: bu dış grafik tipi bilinçli olarak public API'nin parçasıdır;
/// sürümü renderer crate'inin semver'ine bağlıdır.
pub use wgpu;
/// 1.0 kontratı: bu dış pencere tipi bilinçli olarak public API'nin parçasıdır;
/// sürümü window crate'inin semver'ine bağlıdır.
pub use winit;