mirror of
https://github.com/bevyengine/bevy
synced 2024-11-10 15:14:50 +00:00
6a85eb3d7e
# Objective Add a convenient immediate mode drawing API for visual debugging. Fixes #5619 Alternative to #1625 Partial alternative to #5734 Based off https://github.com/Toqozz/bevy_debug_lines with some changes: * Simultaneous support for 2D and 3D. * Methods for basic shapes; circles, spheres, rectangles, boxes, etc. * 2D methods. * Removed durations. Seemed niche, and can be handled by users. <details> <summary>Performance</summary> Stress tested using Bevy's recommended optimization settings for the dev profile with the following command. ```bash cargo run --example many_debug_lines \ --config "profile.dev.package.\"*\".opt-level=3" \ --config "profile.dev.opt-level=1" ``` I dipped to 65-70 FPS at 300,000 lines CPU: 3700x RAM Speed: 3200 Mhz GPU: 2070 super - probably not very relevant, mostly cpu/memory bound </details> <details> <summary>Fancy bloom screenshot</summary> ![Screenshot_20230207_155033](https://user-images.githubusercontent.com/29694403/217291980-f1e0500e-7a14-4131-8c96-eaaaf52596ae.png) </details> ## Changelog * Added `GizmoPlugin` * Added `Gizmos` system parameter for drawing lines and wireshapes. ### TODO - [ ] Update changelog - [x] Update performance numbers - [x] Add credit to PR description ### Future work - Cache rendering primitives instead of constructing them out of line segments each frame. - Support for drawing solid meshes - Interactions. (See [bevy_mod_gizmos](https://github.com/LiamGallagher737/bevy_mod_gizmos)) - Fancier line drawing. (See [bevy_polyline](https://github.com/ForesightMiningSoftwareCorporation/bevy_polyline)) - Support for `RenderLayers` - Display gizmos for a certain duration. Currently everything displays for one frame (ie. immediate mode) - Changing settings per drawn item like drawing on top or drawing to different `RenderLayers` Co-Authored By: @lassade <felipe.jorge.pereira@gmail.com> Co-Authored By: @The5-1 <agaku@hotmail.de> Co-Authored By: @Toqozz <toqoz@hotmail.com> Co-Authored By: @nicopap <nico@nicopap.ch> --------- Co-authored-by: Robert Swain <robert.swain@gmail.com> Co-authored-by: IceSentry <c.giguere42@gmail.com> Co-authored-by: Carter Anderson <mcanders1@gmail.com>
128 lines
5.6 KiB
TOML
128 lines
5.6 KiB
TOML
[package]
|
|
name = "bevy_internal"
|
|
version = "0.11.0-dev"
|
|
edition = "2021"
|
|
description = "An internal Bevy crate used to facilitate optional dynamic linking via the 'dynamic_linking' feature"
|
|
homepage = "https://bevyengine.org"
|
|
repository = "https://github.com/bevyengine/bevy"
|
|
license = "MIT OR Apache-2.0"
|
|
keywords = ["game", "engine", "gamedev", "graphics", "bevy"]
|
|
categories = ["game-engines", "graphics", "gui", "rendering"]
|
|
|
|
[features]
|
|
trace = [
|
|
"bevy_app/trace",
|
|
"bevy_core_pipeline?/trace",
|
|
"bevy_ecs/trace",
|
|
"bevy_log/trace",
|
|
"bevy_render?/trace",
|
|
"bevy_hierarchy/trace",
|
|
"bevy_winit/trace"
|
|
]
|
|
trace_chrome = [ "bevy_log/tracing-chrome" ]
|
|
trace_tracy = ["bevy_render?/tracing-tracy", "bevy_log/tracing-tracy" ]
|
|
wgpu_trace = ["bevy_render/wgpu_trace"]
|
|
debug_asset_server = ["bevy_asset/debug_asset_server"]
|
|
detailed_trace = ["bevy_utils/detailed_trace"]
|
|
|
|
# Image format support for texture loading (PNG and HDR are enabled by default)
|
|
exr = ["bevy_render/exr"]
|
|
hdr = ["bevy_render/hdr"]
|
|
png = ["bevy_render/png"]
|
|
tga = ["bevy_render/tga"]
|
|
jpeg = ["bevy_render/jpeg"]
|
|
bmp = ["bevy_render/bmp"]
|
|
basis-universal = ["bevy_render/basis-universal"]
|
|
dds = ["bevy_render/dds"]
|
|
ktx2 = ["bevy_render/ktx2"]
|
|
# For ktx2 supercompression
|
|
zlib = ["bevy_render/zlib"]
|
|
zstd = ["bevy_render/zstd"]
|
|
|
|
# Include tonemapping LUT KTX2 files.
|
|
tonemapping_luts = ["bevy_core_pipeline/tonemapping_luts"]
|
|
|
|
# Audio format support (vorbis is enabled by default)
|
|
flac = ["bevy_audio/flac"]
|
|
mp3 = ["bevy_audio/mp3"]
|
|
vorbis = ["bevy_audio/vorbis"]
|
|
wav = ["bevy_audio/wav"]
|
|
minimp3 = ["bevy_audio/minimp3"]
|
|
symphonia-aac = ["bevy_audio/symphonia-aac"]
|
|
symphonia-all = ["bevy_audio/symphonia-all"]
|
|
symphonia-flac = ["bevy_audio/symphonia-flac"]
|
|
symphonia-isomp4 = ["bevy_audio/symphonia-isomp4"]
|
|
symphonia-vorbis = ["bevy_audio/symphonia-vorbis"]
|
|
symphonia-wav = ["bevy_audio/symphonia-wav"]
|
|
|
|
# Enable watching file system for asset hot reload
|
|
filesystem_watcher = ["bevy_asset/filesystem_watcher"]
|
|
|
|
serialize = ["bevy_core/serialize", "bevy_input/serialize", "bevy_time/serialize", "bevy_window/serialize", "bevy_transform/serialize", "bevy_math/serialize", "bevy_scene/serialize"]
|
|
|
|
# Display server protocol support (X11 is enabled by default)
|
|
wayland = ["bevy_winit/wayland"]
|
|
x11 = ["bevy_winit/x11"]
|
|
|
|
# enable rendering of font glyphs using subpixel accuracy
|
|
subpixel_glyph_atlas = ["bevy_text/subpixel_glyph_atlas"]
|
|
|
|
# Optimise for WebGL2
|
|
webgl = ["bevy_core_pipeline?/webgl", "bevy_pbr?/webgl", "bevy_render?/webgl"]
|
|
|
|
# enable systems that allow for automated testing on CI
|
|
bevy_ci_testing = ["bevy_app/bevy_ci_testing", "bevy_render?/ci_limits"]
|
|
|
|
# Enable animation support, and glTF animation loading
|
|
animation = ["bevy_animation", "bevy_gltf?/bevy_animation"]
|
|
|
|
bevy_sprite = ["dep:bevy_sprite", "bevy_gizmos?/bevy_sprite"]
|
|
bevy_pbr = ["dep:bevy_pbr", "bevy_gizmos?/bevy_pbr"]
|
|
|
|
# Used to disable code that is unsupported when Bevy is dynamically linked
|
|
dynamic_linking = ["bevy_diagnostic/dynamic_linking"]
|
|
|
|
# Enable using a shared stdlib for cxx on Android.
|
|
android_shared_stdcxx = ["bevy_audio/android_shared_stdcxx"]
|
|
|
|
# Enable AccessKit on Unix backends (currently only works with experimental
|
|
# screen readers and forks.)
|
|
accesskit_unix = ["bevy_winit/accesskit_unix"]
|
|
|
|
bevy_text = ["dep:bevy_text", "bevy_ui?/bevy_text"]
|
|
|
|
[dependencies]
|
|
# bevy
|
|
bevy_a11y = { path = "../bevy_a11y", version = "0.11.0-dev" }
|
|
bevy_app = { path = "../bevy_app", version = "0.11.0-dev" }
|
|
bevy_core = { path = "../bevy_core", version = "0.11.0-dev" }
|
|
bevy_derive = { path = "../bevy_derive", version = "0.11.0-dev" }
|
|
bevy_diagnostic = { path = "../bevy_diagnostic", version = "0.11.0-dev" }
|
|
bevy_ecs = { path = "../bevy_ecs", version = "0.11.0-dev" }
|
|
bevy_hierarchy = { path = "../bevy_hierarchy", version = "0.11.0-dev" }
|
|
bevy_input = { path = "../bevy_input", version = "0.11.0-dev" }
|
|
bevy_log = { path = "../bevy_log", version = "0.11.0-dev" }
|
|
bevy_math = { path = "../bevy_math", version = "0.11.0-dev" }
|
|
bevy_ptr = { path = "../bevy_ptr", version = "0.11.0-dev" }
|
|
bevy_reflect = { path = "../bevy_reflect", version = "0.11.0-dev", features = ["bevy"] }
|
|
bevy_time = { path = "../bevy_time", version = "0.11.0-dev" }
|
|
bevy_transform = { path = "../bevy_transform", version = "0.11.0-dev" }
|
|
bevy_utils = { path = "../bevy_utils", version = "0.11.0-dev" }
|
|
bevy_window = { path = "../bevy_window", version = "0.11.0-dev" }
|
|
bevy_tasks = { path = "../bevy_tasks", version = "0.11.0-dev" }
|
|
# bevy (optional)
|
|
bevy_animation = { path = "../bevy_animation", optional = true, version = "0.11.0-dev" }
|
|
bevy_asset = { path = "../bevy_asset", optional = true, version = "0.11.0-dev" }
|
|
bevy_audio = { path = "../bevy_audio", optional = true, version = "0.11.0-dev" }
|
|
bevy_core_pipeline = { path = "../bevy_core_pipeline", optional = true, version = "0.11.0-dev" }
|
|
bevy_gltf = { path = "../bevy_gltf", optional = true, version = "0.11.0-dev" }
|
|
bevy_pbr = { path = "../bevy_pbr", optional = true, version = "0.11.0-dev" }
|
|
bevy_render = { path = "../bevy_render", optional = true, version = "0.11.0-dev" }
|
|
bevy_dynamic_plugin = { path = "../bevy_dynamic_plugin", optional = true, version = "0.11.0-dev" }
|
|
bevy_scene = { path = "../bevy_scene", optional = true, version = "0.11.0-dev" }
|
|
bevy_sprite = { path = "../bevy_sprite", optional = true, version = "0.11.0-dev" }
|
|
bevy_text = { path = "../bevy_text", optional = true, version = "0.11.0-dev" }
|
|
bevy_ui = { path = "../bevy_ui", optional = true, version = "0.11.0-dev" }
|
|
bevy_winit = { path = "../bevy_winit", optional = true, version = "0.11.0-dev" }
|
|
bevy_gilrs = { path = "../bevy_gilrs", optional = true, version = "0.11.0-dev" }
|
|
bevy_gizmos = { path = "../bevy_gizmos", optional = true, version = "0.11.0-dev", default-features = false }
|