Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,15 @@ npm/jolt-prebuilt/lib/
# Claude Code harness-local state
.claude/scheduled_tasks.lock

# Perry compiler cache
.perry-cache/

# CMake build tree from local bloom_jolt builds (CI produces the canonical archives)
native/third_party/bloom_jolt/build/

# Perf sweep outputs
examples/intel-sponza/sweep.csv

# Local research / external-engine reference clones. Not part of the
# Bloom source tree — each dir is a full Unity / Unreal / Three.js /
# Babylon.js project set up locally for side-by-side perf comparison
Expand Down
6 changes: 5 additions & 1 deletion native/android/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@ name = "bloom_android"
crate-type = ["staticlib", "cdylib"]

[features]
default = ["jolt"]
default = ["jolt", "models3d", "image-extras"]
jolt = ["bloom-shared/jolt"]
# EN-014 — see native/shared/Cargo.toml. Default-on so existing games are
# unaffected; pure-2D games opt out via Perry feature forwarding.
models3d = ["bloom-shared/models3d"]
image-extras = ["bloom-shared/image-extras"]

[dependencies]
bloom-shared = { path = "../shared", default-features = false, features = ["mp3"] }
Expand Down
6 changes: 5 additions & 1 deletion native/ios/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@ name = "bloom_ios"
crate-type = ["staticlib"]

[features]
default = ["jolt"]
default = ["jolt", "models3d", "image-extras"]
jolt = ["bloom-shared/jolt"]
# EN-014 — see native/shared/Cargo.toml. Default-on so existing games are
# unaffected; pure-2D games opt out via Perry feature forwarding.
models3d = ["bloom-shared/models3d"]
image-extras = ["bloom-shared/image-extras"]

# Match perry-runtime's panic strategy so the final perry-driven link
# doesn't see two copies of rust_eh_personality (and friends) from two
Expand Down
6 changes: 5 additions & 1 deletion native/linux/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@ name = "bloom_linux"
crate-type = ["staticlib"]

[features]
default = ["jolt"]
default = ["jolt", "models3d", "image-extras"]
jolt = ["bloom-shared/jolt"]
# EN-014 — see native/shared/Cargo.toml. Default-on so existing games are
# unaffected; pure-2D games opt out via Perry feature forwarding.
models3d = ["bloom-shared/models3d"]
image-extras = ["bloom-shared/image-extras"]

[dependencies]
bloom-shared = { path = "../shared", default-features = false, features = ["mp3"] }
Expand Down
21 changes: 15 additions & 6 deletions native/macos/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,21 @@ name = "bloom_macos"
crate-type = ["staticlib"]

[features]
# Jolt physics is enabled by default because Perry's native-library build
# pipeline does not forward cargo feature flags to nativeLibrary crates —
# any game importing `bloom/physics` would otherwise fail to link. The
# tradeoff is ~60s extra cold-build time for games that don't use physics.
default = ["jolt"]
# Everything defaults ON so existing games are unaffected. Pure-2D games
# opt out per-project via Perry's `[native-library."<pkg>"]` feature
# forwarding in perry.toml (perry >= 0.5.1126), e.g.:
# [native-library."@bloomengine/engine"]
# default-features = false
# which drops Jolt, glTF/DDS model loading, and the non-PNG image codecs
# from the game binary.
default = ["jolt", "models3d", "image-extras"]
jolt = ["bloom-shared/jolt"]
# EN-014 — glTF/DDS model loading + ModelManager (and this crate's
# bloom_load_model/draw_model/... FFI surface).
models3d = ["bloom-shared/models3d"]
# EN-014 — image codecs beyond PNG; also gates this crate's own HDR
# env-map decode (bloom_set_env_clear_from_hdr).
image-extras = ["bloom-shared/image-extras", "image/hdr"]

# Match perry-runtime's panic strategy so the final perry-driven link
# doesn't see two copies of rust_eh_personality (and friends) from two
Expand All @@ -25,7 +34,7 @@ panic = "abort"

[dependencies]
bloom-shared = { path = "../shared", default-features = false, features = ["mp3"] }
image = { version = "0.25", default-features = false, features = ["hdr"] }
image = { version = "0.25", default-features = false }
objc2 = "0.6"
objc2-foundation = { version = "0.3", features = ["NSDate", "NSRunLoop", "NSString", "NSThread", "NSLocale", "NSArray"] }
objc2-app-kit = { version = "0.3", features = ["NSWindow", "NSView", "NSEvent", "NSApplication", "NSScreen", "NSGraphicsContext", "NSRunningApplication", "NSResponder"] }
Expand Down
Loading
Loading