Skip to content

Commit 095f3e0

Browse files
committed
chore: bevy 0.17.0
1 parent 131b9b6 commit 095f3e0

File tree

10 files changed

+88
-69
lines changed

10 files changed

+88
-69
lines changed

.github/workflows/rust.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111

1212
- uses: dtolnay/rust-toolchain@master
1313
with:
14-
toolchain: 1.85.0
14+
toolchain: 1.88.0
1515

1616
- name: install dependencies
1717
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev

Cargo.toml

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,50 +3,53 @@ resolver = "2"
33
members = ["crates/*", "examples/*"]
44

55
[workspace.package]
6-
version = "0.6.0"
7-
rust-version = "1.85.0"
6+
version = "0.7.0"
7+
rust-version = "1.88.0"
88
edition = "2024"
99
license = "MIT OR Apache-2.0"
1010
homepage = "https://github.com/urholaukkarinen/transform-gizmo"
1111
repository = "https://github.com/urholaukkarinen/transform-gizmo"
1212
authors = ["Urho Laukkarinen <urho.laukkarinen@gmail.com>"]
1313

1414
[workspace.dependencies]
15-
transform-gizmo = { version = "0.6.0", path = "crates/transform-gizmo" }
16-
transform-gizmo-egui = { version = "0.6.0", path = "crates/transform-gizmo-egui" }
17-
transform-gizmo-bevy = { version = "0.6.0", path = "crates/transform-gizmo-bevy" }
15+
transform-gizmo = { version = "0.7.0", path = "crates/transform-gizmo" }
16+
transform-gizmo-egui = { version = "0.7.0", path = "crates/transform-gizmo-egui" }
17+
transform-gizmo-bevy = { version = "0.7.0", path = "crates/transform-gizmo-bevy" }
1818

19-
egui = "0.31"
20-
eframe = "0.31"
21-
emath = "0.31"
22-
epaint = "0.31"
23-
ecolor = "0.31"
19+
egui = "0.32"
20+
eframe = "0.32"
21+
emath = "0.32"
22+
epaint = "0.32"
23+
ecolor = "0.32"
2424
glam = { version = "0.30", features = ["mint"] }
2525
mint = "0.5"
2626
enum_dispatch = "0.3"
2727
ahash = "0.8"
2828
enumset = "1.1"
29-
bytemuck = "1.22"
30-
uuid = "1.1"
31-
bevy = "0.16"
29+
bytemuck = "1.23"
30+
uuid = "1.17"
31+
bevy = "0.17.0-rc.1"
3232

33-
bevy_app = { version = "0.16", default-features = false }
34-
bevy_core_pipeline = { version = "0.16", default-features = false }
35-
bevy_reflect = { version = "0.16", default-features = false }
36-
bevy_math = { version = "0.16", features = ["mint"], default-features = false }
37-
bevy_render = { version = "0.16", default-features = false }
38-
bevy_input = { version = "0.16", default-features = false }
39-
bevy_asset = { version = "0.16", default-features = false }
40-
bevy_utils = { version = "0.16", default-features = false }
41-
bevy_platform = { version = "0.16", default-features = false }
42-
bevy_pbr = { version = "0.16", default-features = false }
43-
bevy_ecs = { version = "0.16", default-features = false }
44-
bevy_log = { version = "0.16", default-features = false }
45-
bevy_window = { version = "0.16", default-features = false }
46-
bevy_transform = { version = "0.16", default-features = false }
47-
bevy_derive = { version = "0.16", default-features = false }
48-
bevy_image = { version = "0.16", default-features = false }
49-
bevy_picking = { version = "0.16", default-features = false }
33+
bevy_app = { version = "0.17.0-rc.1", default-features = false }
34+
bevy_core_pipeline = { version = "0.17.0-rc.1", default-features = false }
35+
bevy_reflect = { version = "0.17.0-rc.1", default-features = false }
36+
bevy_math = { version = "0.17.0-rc.1", features = ["mint"], default-features = false }
37+
bevy_mesh = { version = "0.17.0-rc.1", default-features = false }
38+
bevy_camera = { version = "0.17.0-rc.1", default-features = false }
39+
bevy_shader = { version = "0.17.0-rc.1", default-features = false }
40+
bevy_render = { version = "0.17.0-rc.1", default-features = false }
41+
bevy_input = { version = "0.17.0-rc.1", default-features = false }
42+
bevy_asset = { version = "0.17.0-rc.1", default-features = false }
43+
bevy_utils = { version = "0.17.0-rc.1", default-features = false }
44+
bevy_platform = { version = "0.17.0-rc.1", default-features = false }
45+
bevy_pbr = { version = "0.17.0-rc.1", default-features = false }
46+
bevy_ecs = { version = "0.17.0-rc.1", default-features = false }
47+
bevy_log = { version = "0.17.0-rc.1", default-features = false }
48+
bevy_window = { version = "0.17.0-rc.1", default-features = false }
49+
bevy_transform = { version = "0.17.0-rc.1", default-features = false }
50+
bevy_derive = { version = "0.17.0-rc.1", default-features = false }
51+
bevy_image = { version = "0.17.0-rc.1", default-features = false }
52+
bevy_picking = { version = "0.17.0-rc.1", default-features = false }
5053

5154
[profile.release]
5255
opt-level = "s"

crates/transform-gizmo-bevy/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ bevy_app.workspace = true
2424
bevy_core_pipeline.workspace = true
2525
bevy_reflect.workspace = true
2626
bevy_math.workspace = true
27+
bevy_mesh.workspace = true
2728
bevy_picking = {workspace = true, optional = true}
29+
bevy_camera.workspace = true
2830
bevy_render.workspace = true
31+
bevy_shader.workspace = true
2932
bevy_input.workspace = true
3033
bevy_asset.workspace = true
3134
bevy_utils.workspace = true

crates/transform-gizmo-bevy/examples/ui_blocked_gizmo.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ fn main() {
99
App::new()
1010
.add_plugins((DefaultPlugins, TransformGizmoPlugin))
1111
.add_systems(Startup, setup)
12-
.add_observer(|trigger: Trigger<Pointer<Over>>| {
13-
info!("Moved over: {}", trigger.target());
12+
.add_observer(|trigger: On<Pointer<Over>>| {
13+
info!("Moved over: {}", trigger.entity);
1414
})
1515
.run();
1616
}

crates/transform-gizmo-bevy/src/lib.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@
3030
3131
use bevy_app::prelude::*;
3232
use bevy_asset::{AssetApp, Assets};
33+
use bevy_camera::Camera;
3334
use bevy_ecs::prelude::*;
3435
use bevy_input::prelude::*;
3536
use bevy_math::{DQuat, DVec3, Vec2};
3637
use bevy_picking::hover::HoverMap;
3738
use bevy_platform::collections::HashMap;
38-
use bevy_render::prelude::*;
3939
use bevy_transform::prelude::*;
4040
use bevy_window::{PrimaryWindow, Window};
4141
use mouse_interact::MouseGizmoInteractionPlugin;
@@ -72,8 +72,8 @@ impl Plugin for TransformGizmoPlugin {
7272
app.init_asset::<render::GizmoDrawData>()
7373
.init_resource::<GizmoOptions>()
7474
.init_resource::<GizmoStorage>()
75-
.add_event::<GizmoDragStarted>()
76-
.add_event::<GizmoDragging>()
75+
.add_message::<GizmoDragStarted>()
76+
.add_message::<GizmoDragging>()
7777
.add_plugins(TransformGizmoRenderPlugin)
7878
.add_systems(
7979
Last,
@@ -371,18 +371,18 @@ fn handle_hotkeys(
371371
}
372372
}
373373

374-
#[derive(Debug, Event, Default)]
374+
#[derive(Debug, Message, Default)]
375375
pub struct GizmoDragStarted;
376-
#[derive(Debug, Event, Default)]
376+
#[derive(Debug, Message, Default)]
377377
pub struct GizmoDragging;
378378

379379
#[allow(clippy::too_many_arguments)]
380380
fn update_gizmos(
381381
q_window: Query<&Window, With<PrimaryWindow>>,
382382
q_gizmo_camera: Query<(&Camera, &GlobalTransform), With<GizmoCamera>>,
383383
mut q_targets: Query<(Entity, &mut Transform, &mut GizmoTarget), Without<GizmoCamera>>,
384-
mut drag_started: EventReader<GizmoDragStarted>,
385-
mut dragging: EventReader<GizmoDragging>,
384+
mut drag_started: MessageReader<GizmoDragStarted>,
385+
mut dragging: MessageReader<GizmoDragging>,
386386
gizmo_options: Res<GizmoOptions>,
387387
mut gizmo_storage: ResMut<GizmoStorage>,
388388
mut last_cursor_pos: Local<Vec2>,
@@ -442,7 +442,7 @@ fn update_gizmos(
442442

443443
let projection_matrix = camera.clip_from_view();
444444

445-
let view_matrix = camera_transform.compute_matrix().inverse();
445+
let view_matrix = camera_transform.to_matrix().inverse();
446446

447447
let mut snap_angle = gizmo_options.snap_angle;
448448
let mut snap_distance = gizmo_options.snap_distance;

crates/transform-gizmo-bevy/src/mouse_interact.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use bevy_app::{App, Plugin, Update};
2-
use bevy_ecs::{event::EventWriter, system::Res};
2+
use bevy_ecs::{message::MessageWriter, system::Res};
33
use bevy_input::{ButtonInput, mouse::MouseButton};
44

55
use crate::{GizmoDragStarted, GizmoDragging};
@@ -13,8 +13,8 @@ impl Plugin for MouseGizmoInteractionPlugin {
1313

1414
fn mouse_interact_gizmo(
1515
mouse: Res<ButtonInput<MouseButton>>,
16-
mut drag_started: EventWriter<GizmoDragStarted>,
17-
mut dragging: EventWriter<GizmoDragging>,
16+
mut drag_started: MessageWriter<GizmoDragStarted>,
17+
mut dragging: MessageWriter<GizmoDragging>,
1818
) {
1919
if mouse.just_pressed(MouseButton::Left) {
2020
drag_started.write_default();

crates/transform-gizmo-bevy/src/picking.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
use bevy_app::{Plugin, PreUpdate};
22
use bevy_ecs::{
3-
event::EventWriter,
3+
message::MessageWriter,
44
schedule::IntoScheduleConfigs,
55
system::{Query, Res},
66
};
77
use bevy_picking::{
8-
PickSet,
8+
PickingSystems,
99
backend::{HitData, PointerHits},
1010
pointer::{PointerId, PointerLocation},
1111
};
@@ -16,13 +16,13 @@ pub struct TransformGizmoPickingPlugin;
1616

1717
impl Plugin for TransformGizmoPickingPlugin {
1818
fn build(&self, app: &mut bevy_app::App) {
19-
app.add_systems(PreUpdate, update_hits.in_set(PickSet::Backend));
19+
app.add_systems(PreUpdate, update_hits.in_set(PickingSystems::Backend));
2020
}
2121
}
2222

2323
fn update_hits(
2424
storage: Res<GizmoStorage>,
25-
mut output: EventWriter<PointerHits>,
25+
mut output: MessageWriter<PointerHits>,
2626
pointers: Query<(&PointerId, &PointerLocation)>,
2727
) {
2828
let gizmos = storage

crates/transform-gizmo-bevy/src/render.rs

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use bevy_app::{App, Plugin};
2-
use bevy_asset::{Asset, AssetId, Handle, load_internal_asset, weak_handle};
2+
use bevy_asset::{Asset, AssetId, Handle, RenderAssetUsages, load_internal_asset, uuid_handle};
3+
use bevy_camera::visibility::RenderLayers;
34
use bevy_core_pipeline::core_3d::{CORE_3D_DEPTH_FORMAT, Transparent3d};
45
use bevy_core_pipeline::prepass::{
56
DeferredPrepass, DepthPrepass, MotionVectorPrepass, NormalPrepass,
@@ -10,15 +11,14 @@ use bevy_ecs::query::ROQueryItem;
1011
use bevy_ecs::system::SystemParamItem;
1112
use bevy_ecs::system::lifetimeless::{Read, SRes};
1213
use bevy_image::BevyDefault as _;
14+
use bevy_mesh::{PrimitiveTopology, VertexBufferLayout};
1315
use bevy_pbr::{MeshPipeline, MeshPipelineKey, SetMeshViewBindGroup};
1416
use bevy_platform::collections::{HashMap, HashSet};
1517
use bevy_reflect::{Reflect, TypePath};
1618
use bevy_render::extract_component::ExtractComponent;
17-
use bevy_render::mesh::PrimitiveTopology;
1819
use bevy_render::prelude::*;
1920
use bevy_render::render_asset::{
20-
PrepareAssetError, RenderAsset, RenderAssetPlugin, RenderAssetUsages, RenderAssets,
21-
prepare_assets,
21+
PrepareAssetError, RenderAsset, RenderAssetPlugin, RenderAssets, prepare_assets,
2222
};
2323
use bevy_render::render_phase::{
2424
AddRenderCommand, DrawFunctions, PhaseItem, PhaseItemExtraIndex, RenderCommand,
@@ -29,18 +29,19 @@ use bevy_render::render_resource::{
2929
CompareFunction, DepthBiasState, DepthStencilState, FragmentState, IndexFormat,
3030
MultisampleState, PipelineCache, PrimitiveState, RenderPipelineDescriptor,
3131
SpecializedRenderPipeline, SpecializedRenderPipelines, StencilState, TextureFormat,
32-
VertexAttribute, VertexBufferLayout, VertexFormat, VertexState, VertexStepMode,
32+
VertexAttribute, VertexFormat, VertexState, VertexStepMode,
3333
};
3434
use bevy_render::renderer::RenderDevice;
3535
use bevy_render::sync_world::TemporaryRenderEntity;
36-
use bevy_render::view::{ExtractedView, RenderLayers, ViewTarget};
37-
use bevy_render::{Extract, Render, RenderApp, RenderSet};
36+
use bevy_render::view::{ExtractedView, ViewTarget};
37+
use bevy_render::{Extract, Render, RenderApp, RenderSystems};
38+
use bevy_shader::Shader;
3839
use bytemuck::cast_slice;
3940
use uuid::Uuid;
4041

4142
use crate::GizmoCamera;
4243

43-
const GIZMO_SHADER_HANDLE: Handle<Shader> = weak_handle!("e44be110-cb2b-4a8d-9c0c-965424e6a633");
44+
const GIZMO_SHADER_HANDLE: Handle<Shader> = uuid_handle!("e44be110-cb2b-4a8d-9c0c-965424e6a633");
4445

4546
pub(crate) struct TransformGizmoRenderPlugin;
4647

@@ -62,7 +63,7 @@ impl Plugin for TransformGizmoRenderPlugin {
6263
.add_systems(
6364
Render,
6465
queue_transform_gizmos
65-
.in_set(RenderSet::Queue)
66+
.in_set(RenderSystems::Queue)
6667
.after(prepare_assets::<GizmoBuffers>),
6768
);
6869
}
@@ -85,7 +86,17 @@ pub(crate) struct DrawDataHandles {
8586
}
8687

8788
#[derive(
88-
Component, Default, Clone, Debug, Deref, DerefMut, Reflect, PartialEq, Eq, ExtractComponent,
89+
Component,
90+
Default,
91+
Clone,
92+
Debug,
93+
Deref,
94+
DerefMut,
95+
Reflect,
96+
PartialEq,
97+
Eq,
98+
ExtractComponent,
99+
Hash,
89100
)]
90101
#[reflect(Component)]
91102
pub(crate) struct GizmoDrawDataHandle(pub(crate) Handle<GizmoDrawData>);
@@ -108,14 +119,14 @@ impl From<&GizmoDrawDataHandle> for AssetId<GizmoDrawData> {
108119
}
109120

110121
fn extract_gizmo_data(mut commands: Commands, handles: Extract<Res<DrawDataHandles>>) {
111-
let handle_weak_refs = handles
122+
let handle_refs = handles
112123
.handles
113124
.values()
114-
.map(|handle| handle.clone_weak())
125+
.map(|handle| handle.clone())
115126
.collect::<HashSet<_>>();
116127

117-
for handle in handle_weak_refs {
118-
commands.spawn((GizmoDrawDataHandle(handle), TemporaryRenderEntity));
128+
for handle in handle_refs {
129+
commands.spawn((handle, TemporaryRenderEntity));
119130
}
120131
}
121132

@@ -142,6 +153,7 @@ impl RenderAsset for GizmoBuffers {
142153
source_asset: Self::SourceAsset,
143154
_: AssetId<Self::SourceAsset>,
144155
render_device: &mut SystemParamItem<Self::Param>,
156+
_: Option<&Self>,
145157
) -> std::result::Result<Self, PrepareAssetError<Self::SourceAsset>> {
146158
let position_buffer_data = cast_slice(&source_asset.0.vertices);
147159
let position_buffer = render_device.create_buffer_with_data(&BufferInitDescriptor {
@@ -183,8 +195,8 @@ impl<P: PhaseItem> RenderCommand<P> for DrawTransformGizmo {
183195
#[inline]
184196
fn render<'w>(
185197
_item: &P,
186-
_view: ROQueryItem<'w, Self::ViewQuery>,
187-
handle: Option<ROQueryItem<'w, Self::ItemQuery>>,
198+
_view: ROQueryItem<'w, '_, Self::ViewQuery>,
199+
handle: Option<ROQueryItem<'w, '_, Self::ItemQuery>>,
188200
gizmos: SystemParamItem<'w, '_, Self::Param>,
189201
pass: &mut TrackedRenderPass<'w>,
190202
) -> RenderCommandResult {
@@ -251,13 +263,14 @@ impl SpecializedRenderPipeline for TransformGizmoPipeline {
251263
.mesh_pipeline
252264
.get_view_layout(key.view_key.into())
253265
.clone();
266+
let layout = vec![view_layout.main_layout.clone()];
254267

255268
RenderPipelineDescriptor {
256269
label: Some("TransformGizmo Pipeline".into()),
257270
zero_initialize_workgroup_memory: true, // ?
258271
vertex: VertexState {
259272
shader: GIZMO_SHADER_HANDLE,
260-
entry_point: "vertex".into(),
273+
entry_point: Some("vertex".into()),
261274
shader_defs: shader_defs.clone(),
262275
buffers: vec![
263276
VertexBufferLayout {
@@ -283,14 +296,14 @@ impl SpecializedRenderPipeline for TransformGizmoPipeline {
283296
fragment: Some(FragmentState {
284297
shader: GIZMO_SHADER_HANDLE,
285298
shader_defs,
286-
entry_point: "fragment".into(),
299+
entry_point: Some("fragment".into()),
287300
targets: vec![Some(ColorTargetState {
288301
format,
289302
blend: Some(BlendState::PREMULTIPLIED_ALPHA_BLENDING),
290303
write_mask: ColorWrites::ALL,
291304
})],
292305
}),
293-
layout: vec![view_layout],
306+
layout,
294307
primitive: PrimitiveState {
295308
topology: PrimitiveTopology::TriangleList,
296309
cull_mode: None,

crates/transform-gizmo-egui/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name = "transform-gizmo-egui"
33
description = "egui integration for transform-gizmo"
44
version.workspace = true
5-
rust-version = "1.85.0"
5+
rust-version.workspace = true
66
edition.workspace = true
77
license.workspace = true
88
homepage.workspace = true

crates/transform-gizmo/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name = "transform-gizmo"
33
description = "3D transformation gizmo"
44
version.workspace = true
5-
rust-version = "1.85.0"
5+
rust-version.workspace = true
66
edition.workspace = true
77
license.workspace = true
88
homepage.workspace = true

0 commit comments

Comments
 (0)