Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
2aeb9f0
Add advanced entity outline calculations (#222)
okhaimie-dev Jul 17, 2025
9d0d202
Launcher code quality improvements (#223)
tim-blackbird Jul 17, 2025
617ea6d
Simplify `selection_box::transform_aabb` (#224)
tim-blackbird Jul 17, 2025
3d1823d
Fix panel layout exploding when panels overflow (#227)
tim-blackbird Jul 18, 2025
235501a
Fix 3d viewport picking passthrough and camera input (#226)
tim-blackbird Jul 18, 2025
1a4b8b6
Update to rust edition 2024 (#228)
tim-blackbird Jul 18, 2025
b2023bd
Allow loading gltf/glb files from outside the assets directory (#231)
tim-blackbird Jul 18, 2025
4c1c545
Improve selection (#230)
tim-blackbird Jul 18, 2025
7a1f86a
Update .gitignore (#229)
tim-blackbird Jul 18, 2025
df53e50
Depend on cart's BSN branch (#232)
tim-blackbird Jul 18, 2025
4f83bfc
Humble Beginnings for the `ActionRegistry` (#234)
tim-blackbird Jul 20, 2025
ea5cb9a
Port Viewport Panes to BSN and feathers (#233)
tim-blackbird Jul 20, 2025
e371407
Port Properties Pane to BSN and Feathers (#235)
tim-blackbird Jul 20, 2025
b81daa4
Use Theme Colors for Viewgizmo (#237)
tim-blackbird Jul 24, 2025
5632bb8
Vendor `bevy_transform_gizmo` (#236)
tim-blackbird Jul 24, 2025
c331551
Document the Lucide placeholder icon font (#241)
onkoe Aug 2, 2025
54f2ff4
Update Bevy dependency (#242)
tim-blackbird Aug 2, 2025
3ac6bb8
Add support for selecting multiple entities (#240)
tim-blackbird Aug 3, 2025
124c1b7
Enable Transform Gizmo (#244)
tim-blackbird Aug 4, 2025
b81adf1
Rework action keybinding (#243)
tim-blackbird Aug 4, 2025
095463c
Update Bevy (#245)
tim-blackbird Aug 10, 2025
8edc147
Remove Manual Type Registrations (#246)
tim-blackbird Aug 10, 2025
ef28bd9
Transform Gizmo/UX updates (#247)
jbuehler23 Aug 15, 2025
89b4214
Added basic sorting for asset browser (#256)
Freyja-moth Oct 29, 2025
1d84f5d
Prevent crash due to malformed heirarchy (#254)
Freyja-moth Oct 29, 2025
a3dbcfd
Fix ci out of space (#263)
Sieluna Jan 15, 2026
4207cb4
Upgrade to 0.17 (#262)
Sieluna Jan 15, 2026
c129c28
Moved projects.ron to comply with XDG base directory standards (#265)
Freyja-moth Feb 22, 2026
0e07fdd
Merge branch 'main' of github.com:bevyengine/bevy_editor_prototypes i…
syborg64 Mar 2, 2026
e83bada
fix: update to workspace version of bevy
syborg64 Mar 2, 2026
b65004d
fix: doc links using rust paths instead of web links where possible
syborg64 Mar 2, 2026
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
30 changes: 28 additions & 2 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

env:
CARGO_TERM_COLOR: always
RUSTFLAGS: --deny warnings
RUSTFLAGS: --deny warnings -C debuginfo=line-tables-only
RUSTDOCFLAGS: --deny warnings
# This can be any valid Cargo version requirement, but should start with a caret `^` to opt-in to
# SemVer-compatible changes. Please keep this in sync with `book.yaml`.
Expand All @@ -30,7 +30,33 @@ jobs:
uses: dtolnay/rust-toolchain@stable

- name: Install dependencies
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev

# Uninstall unneeded tools
# .NET
sudo rm -rf /usr/share/dotnet || true
sudo apt-get remove -y '^aspnetcore-.*' || true
sudo apt-get remove -y '^dotnet-.*' --fix-missing || true
# Haskell
sudo rm -rf /opt/ghc || true
sudo rm -rf /usr/local/.ghcup || true
# Android
sudo rm -rf /usr/local/lib/android || true
# PHP
sudo apt-get remove -y 'php.*' --fix-missing || true
# Database
sudo apt-get remove -y '^mongodb-.*' --fix-missing || true
sudo apt-get remove -y '^mysql-.*' --fix-missing || true
# Cloud
sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing || true
sudo apt-get remove -y google-cloud-sdk --fix-missing || true
sudo apt-get remove -y google-cloud-cli --fix-missing || true

# Clean up unused packages
sudo apt-get autoremove -y
sudo apt-get clean

- name: Populate target directory from cache
uses: Leafwing-Studios/cargo-cache@v2
Expand Down
12 changes: 5 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
# Generated by Cargo
# will have compiled files and executables
debug/
target/
target

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock

# Local cargo config overrides
.cargo/config
.cargo/config.toml

# These are backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb


# Added by cargo

/target

# mdbook generated files
design-book/book
19 changes: 9 additions & 10 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[workspace]
resolver = "2"
resolver = "3"
members = ["crates/*", "bevy_editor_panes/*", "bevy_widgets/*"]
exclude = ["templates/"]
default-members = ["crates/bevy_editor_launcher"]
Expand Down Expand Up @@ -27,22 +27,20 @@ unsafe_op_in_unsafe_fn = "warn"
unused_qualifications = "warn"

[workspace.dependencies]
bevy = { git = "https://github.com/bevyengine/bevy.git", rev = "a3d406dd497205253e34ace757ab0076d50eec14", features = [
"wayland",
] }
bevy_derive = { git = "https://github.com/bevyengine/bevy.git", rev = "a3d406dd497205253e34ace757ab0076d50eec14" }
bevy_macro_utils = { git = "https://github.com/bevyengine/bevy.git", rev = "a3d406dd497205253e34ace757ab0076d50eec14" }
bevy_remote = { git = "https://github.com/bevyengine/bevy.git", rev = "a3d406dd497205253e34ace757ab0076d50eec14" }
bevy = { git = "https://github.com/cart/bevy.git", rev = "87a21ecafa51bfaea02834b5933f08397b45b984", features = ["experimental_bevy_feathers"] }
bevy_derive = { git = "https://github.com/cart/bevy.git", rev = "87a21ecafa51bfaea02834b5933f08397b45b984" }
bevy_macro_utils = { git = "https://github.com/cart/bevy.git", rev = "87a21ecafa51bfaea02834b5933f08397b45b984" }
bevy_remote = { git = "https://github.com/cart/bevy.git", rev = "87a21ecafa51bfaea02834b5933f08397b45b984" }

thiserror = "2.0"
thiserror = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1.0.140"
ureq = {version = "3.0.12", features = ["json"]}
tracing-test = "0.2.5"
tracing = "0.1.41"
atomicow = "1.1.0"
rfd = "0.15.3"
ron = "0.10.1"
rfd = "0.17.2"
ron = "0.12.0"
variadics_please = "1.0"

# local crates
Expand All @@ -65,6 +63,7 @@ bevy_menu_bar = { path = "bevy_widgets/bevy_menu_bar" }
bevy_scroll_box = { path = "bevy_widgets/bevy_scroll_box" }
bevy_footer_bar = { path = "bevy_widgets/bevy_footer_bar" }
bevy_toolbar = { path = "bevy_widgets/bevy_toolbar" }
bevy_gizmo_indicator = { path = "bevy_widgets/bevy_gizmo_indicator" }
bevy_tooltips = { path = "bevy_widgets/bevy_tooltips" }
bevy_text_editing = { path = "bevy_widgets/bevy_text_editing" }
bevy_field_forms = { path = "bevy_widgets/bevy_field_forms" }
Expand Down
2 changes: 1 addition & 1 deletion bevy_editor_panes/bevy_2d_viewport/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "bevy_2d_viewport"
version = "0.1.0"
edition = "2021"
edition = "2024"

[dependencies]
bevy.workspace = true
Expand Down
66 changes: 31 additions & 35 deletions bevy_editor_panes/bevy_2d_viewport/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
//! 2d Viewport for Bevy
use bevy::{
camera::{RenderTarget, visibility::RenderLayers},
feathers::theme::ThemedText,
prelude::*,
render::{
camera::RenderTarget,
render_resource::{Extent3d, TextureFormat, TextureUsages},
view::RenderLayers,
},
render::render_resource::{Extent3d, TextureFormat, TextureUsages},
scene2::{CommandsSpawnScene, bsn, on},
ui::ui_layout_system,
};
use bevy_editor_camera::{EditorCamera2d, EditorCamera2dPlugin};
Expand Down Expand Up @@ -48,7 +47,7 @@ impl Plugin for Viewport2dPanePlugin {
query: Query<&Bevy2dViewport>| {
// Despawn the viewport camera
commands
.entity(query.get(trigger.target()).unwrap().camera_id)
.entity(query.get(trigger.event().event_target()).unwrap().camera_id)
.despawn();
},
);
Expand Down Expand Up @@ -87,20 +86,8 @@ fn on_pane_creation(

let image_handle = images.add(image);

let image_id = commands
.spawn((
ImageNode::new(image_handle.clone()),
Node {
position_type: PositionType::Absolute,
top: Val::ZERO,
bottom: Val::ZERO,
left: Val::ZERO,
right: Val::ZERO,
..default()
},
ChildOf(structure.content),
))
.id();
// Remove the existing structure
commands.entity(structure.area).despawn();

let camera_id = commands
.spawn((
Expand All @@ -110,7 +97,7 @@ fn on_pane_creation(
..default()
},
Camera {
target: RenderTarget::Image(image_handle.into()),
target: RenderTarget::Image(image_handle.clone().into()),
clear_color: ClearColorConfig::Custom(theme.viewport.background_color),
..default()
},
Expand All @@ -119,18 +106,25 @@ fn on_pane_creation(
.id();

commands
.entity(image_id)
.observe(
move |_trigger: On<Pointer<Move>>, mut query: Query<&mut EditorCamera2d>| {
let mut editor_camera = query.get_mut(camera_id).unwrap();
editor_camera.enabled = true;
},
)
.observe(
move |_trigger: On<Pointer<Out>>, mut query: Query<&mut EditorCamera2d>| {
query.get_mut(camera_id).unwrap().enabled = false;
},
);
.spawn_scene(bsn! {
:editor_pane [
:editor_pane_header [
(Text("2D Viewport") ThemedText),
],
:editor_pane_body [
ImageNode::new(image_handle.clone())
:fit_to_parent
on(move |_trigger: On<Pointer<Move>>, mut query: Query<&mut EditorCamera2d>| {
let mut editor_camera = query.get_mut(camera_id).unwrap();
editor_camera.enabled = true;
})
on(move |_trigger: On<Pointer<Out>>, mut query: Query<&mut EditorCamera2d>| {
query.get_mut(camera_id).unwrap().enabled = false;
})
],
]
})
.insert(ChildOf(structure.root));

commands
.entity(structure.root)
Expand All @@ -149,10 +143,12 @@ fn update_render_target_size(
mut images: ResMut<Assets<Image>>,
) {
for (pane_root, viewport) in &query {
let content_node_id = children_query
let Some(content_node_id) = children_query
.iter_descendants(pane_root)
.find(|e| content.contains(*e))
.unwrap();
else {
continue;
};

let Ok((computed_node, global_transform)) = pos_query.get(content_node_id) else {
continue;
Expand Down
3 changes: 2 additions & 1 deletion bevy_editor_panes/bevy_3d_viewport/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "bevy_3d_viewport"
version = "0.1.0"
edition = "2021"
edition = "2024"

[dependencies]
bevy.workspace = true
Expand All @@ -10,6 +10,7 @@ bevy_editor_cam.workspace = true
bevy_editor_styles.workspace = true
bevy_infinite_grid.workspace = true
bevy_editor_core.workspace = true
bevy_transform_gizmos.workspace = true

[lints]
workspace = true
Loading
Loading