[package]
name = "dear-imgui-bevy"
version = "0.15.0"
edition.workspace = true
rust-version = "1.95.0"
description = "Experimental Bevy-native backend for dear-imgui-rs on Bevy 0.19.0-rc.2"
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
documentation = "https://docs.rs/dear-imgui-bevy"
categories.workspace = true
keywords.workspace = true

[dependencies]
dear-imgui-rs = { path = "../../dear-imgui", version = "0.15" }

# The first proof is intentionally pinned to the checked reference train instead of a floating
# prerelease. Bevy subcrates use semver-compatible internal dependencies, so exact pin anchors keep
# the app/ECS/window/input slice on `v0.19.0-rc.2` instead of partially resolving to a newer
# release candidate.
bevy_app = { version = "=0.19.0-rc.2", default-features = false, features = ["std"] }
bevy_ecs = { version = "=0.19.0-rc.2", default-features = false, features = ["std"] }
bevy_input = { version = "=0.19.0-rc.2", default-features = false, features = ["std", "keyboard", "mouse", "touch"] }
bevy_math = { version = "=0.19.0-rc.2", default-features = false, features = ["std"] }
bevy_window = { version = "=0.19.0-rc.2", default-features = false, features = ["std"] }
bevy_asset = { version = "=0.19.0-rc.2", default-features = false, optional = true }
bevy_camera = { version = "=0.19.0-rc.2", default-features = false, optional = true }
bevy_color = { version = "=0.19.0-rc.2", default-features = false, optional = true }
bevy_core_pipeline = { version = "=0.19.0-rc.2", default-features = false, optional = true }
bevy_derive = "=0.19.0-rc.2"
bevy_ecs_macro_logic = "=0.19.0-rc.2"
bevy_ecs_macros = "=0.19.0-rc.2"
bevy_image = { version = "=0.19.0-rc.2", default-features = false, optional = true }
bevy_macro_utils = "=0.19.0-rc.2"
bevy_mesh = { version = "=0.19.0-rc.2", default-features = false, optional = true }
bevy_platform = { version = "=0.19.0-rc.2", default-features = false }
bevy_ptr = "=0.19.0-rc.2"
bevy_reflect = { version = "=0.19.0-rc.2", default-features = false, optional = true }
bevy_render = { version = "=0.19.0-rc.2", default-features = false, optional = true }
bevy_shader = { version = "=0.19.0-rc.2", default-features = false, optional = true }
bevy_tasks = { version = "=0.19.0-rc.2", default-features = false }
bevy_time = { version = "=0.19.0-rc.2", default-features = false, features = ["std"] }
bevy_transform = { version = "=0.19.0-rc.2", default-features = false, optional = true }
bevy_utils = { version = "=0.19.0-rc.2", default-features = false }
bevy_winit = { version = "=0.19.0-rc.2", default-features = false, features = ["x11"], optional = true }
bytemuck = { workspace = true, features = ["derive"], optional = true }

[dev-dependencies]
bevy = { version = "=0.19.0-rc.2", default-features = false, features = ["2d", "default_platform"] }
dear-imguizmo = { path = "../../extensions/dear-imguizmo", version = "0.15" }
dear-imnodes = { path = "../../extensions/dear-imnodes", version = "0.15" }
dear-implot = { path = "../../extensions/dear-implot", version = "0.15" }

[features]
default = []
# Enables the first native Dear ImGui PlatformIO lifecycle bridge. This does not by itself
# advertise full multi-viewport support; render/input routing still gate status.
multi-viewport = ["dear-imgui-rs/multi-viewport", "dep:bevy_winit"]
# Enables the Bevy render-world extraction and renderer integration slices.
render = [
    "dep:bevy_asset",
    "dep:bevy_camera",
    "dep:bevy_color",
    "dep:bevy_core_pipeline",
    "dep:bevy_image",
    "dep:bevy_mesh",
    "dep:bevy_reflect",
    "dep:bevy_render",
    "dep:bevy_shader",
    "dep:bevy_transform",
    "dep:bytemuck",
]

[[example]]
name = "simple"
path = "examples/basic/simple.rs"
required-features = ["render"]

[[example]]
name = "app_integration"
path = "examples/app/app_integration.rs"
required-features = ["render"]

[[example]]
name = "game_engine"
path = "examples/game_engine/game_engine.rs"
required-features = ["render"]

[[example]]
name = "bevy_plot_controls"
path = "examples/ecosystem/bevy_plot_controls.rs"
required-features = ["render"]

[[example]]
name = "ecosystem"
path = "examples/ecosystem/ecosystem.rs"
required-features = ["render"]
