update bevy 0.11 - fix compile errors

This commit is contained in:
johnny-smitherson
2023-10-23 16:21:07 +00:00
parent 82416e3ca6
commit 780ba4a216
20 changed files with 148 additions and 108 deletions

View File

@@ -19,7 +19,6 @@ use bevy::render::MainWorld;
*/
use bevy::{
asset::{Assets, HandleUntyped},
pbr::{NotShadowCaster, NotShadowReceiver},
prelude::*,
reflect::TypeUuid,
render::{
@@ -27,8 +26,10 @@ use bevy::{
render_phase::AddRenderCommand,
render_resource::PrimitiveTopology,
render_resource::Shader,
RenderSet,
},
};
use bevy_pbr::{NotShadowCaster, NotShadowReceiver};
mod render_dim;
@@ -38,8 +39,8 @@ mod render_dim;
#[cfg(feature = "dim3")]
mod dim {
pub(crate) use super::render_dim::r3d::{queue, DebugLinePipeline, DrawDebugLines};
pub(crate) use bevy::core_pipeline::core_3d::Opaque3d as Phase;
use bevy::{asset::Handle, render::mesh::Mesh};
pub(crate) use bevy_core_pipeline::core_3d::Opaque3d as Phase;
pub(crate) type MeshHandle = Handle<Mesh>;
pub(crate) fn from_handle(from: &MeshHandle) -> &Handle<Mesh> {
@@ -54,8 +55,9 @@ mod dim {
#[cfg(feature = "dim2")]
mod dim {
pub(crate) use super::render_dim::r2d::{queue, DebugLinePipeline, DrawDebugLines};
pub(crate) use bevy::core_pipeline::core_2d::Transparent2d as Phase;
use bevy::{asset::Handle, render::mesh::Mesh, sprite::Mesh2dHandle};
use bevy::{asset::Handle, render::mesh::Mesh};
pub(crate) use bevy_core_pipeline::core_2d::Transparent2d as Phase;
use bevy_sprite::Mesh2dHandle;
pub(crate) type MeshHandle = Mesh2dHandle;
pub(crate) fn from_handle(from: &MeshHandle) -> &Handle<Mesh> {
@@ -120,27 +122,33 @@ impl DebugLinesPlugin {
Self { depth_test: val }
}
}
use bevy::render::render_phase::DrawFunctions;
use bevy::render::Render;
impl Plugin for DebugLinesPlugin {
fn build(&self, app: &mut App) {
use bevy::render::{render_resource::SpecializedMeshPipelines, RenderApp, RenderStage};
use bevy::render::{render_resource::SpecializedMeshPipelines, RenderApp};
let mut shaders = app.world.get_resource_mut::<Assets<Shader>>().unwrap();
shaders.set_untracked(
DEBUG_LINES_SHADER_HANDLE,
Shader::from_wgsl(dim::SHADER_FILE),
Shader::from_wgsl(dim::SHADER_FILE, file!()),
);
app.init_resource::<DebugLines>();
app.add_startup_system(setup)
.add_system_to_stage(CoreStage::PostUpdate, update.label("draw_lines"));
app.init_resource::<DrawFunctions<dim::Phase>>();
app.add_systems(Startup, setup)
.add_systems(PostUpdate, update);
app.sub_app_mut(RenderApp)
.init_resource::<DrawFunctions<dim::Phase>>()
.add_render_command::<dim::Phase, dim::DrawDebugLines>()
.insert_resource(DebugLinesConfig {
depth_test: self.depth_test,
})
.init_resource::<dim::DebugLinePipeline>()
.init_resource::<SpecializedMeshPipelines<dim::DebugLinePipeline>>()
.add_system_to_stage(RenderStage::Extract, extract)
.add_system_to_stage(RenderStage::Queue, dim::queue);
.add_systems(Render, extract.in_set(RenderSet::ExtractCommands))
.add_systems(Render, dim::queue.in_set(RenderSet::Queue));
info!("Loaded {} debug lines plugin.", dim::DIMMENSION);
}
@@ -176,7 +184,7 @@ fn setup(mut cmds: Commands, mut meshes: ResMut<Assets<Mesh>>) {
// https://github.com/Toqozz/bevy_debug_lines/issues/16
//mesh.set_indices(Some(Indices::U16(Vec::with_capacity(MAX_POINTS_PER_MESH))));
cmds.spawn_bundle((
cmds.spawn((
dim::into_handle(meshes.add(mesh)),
NotShadowCaster,
NotShadowReceiver,

View File

@@ -1,10 +1,11 @@
pub mod r3d {
use bevy_core_pipeline::core_3d::Opaque3d;
use bevy_pbr::{
DrawMesh, MeshPipeline, MeshPipelineKey, MeshUniform, SetMeshBindGroup,
SetMeshViewBindGroup,
};
use bevy::{
core_pipeline::core_3d::Opaque3d,
pbr::{
DrawMesh, MeshPipeline, MeshPipelineKey, MeshUniform, SetMeshBindGroup,
SetMeshViewBindGroup,
},
prelude::*,
render::{
mesh::MeshVertexBufferLayout,
@@ -54,9 +55,9 @@ pub mod r3d {
//use VertexFormat::{Float32x3, Float32x4};
let mut shader_defs = Vec::new();
shader_defs.push("LINES_3D".to_string());
shader_defs.push("LINES_3D".to_string().into());
if depth_test {
shader_defs.push("DEPTH_TEST_ENABLED".to_string());
shader_defs.push("DEPTH_TEST_ENABLED".to_string().into());
}
let vertex_buffer_layout = layout.get_layout(&[
@@ -64,7 +65,7 @@ pub mod r3d {
Mesh::ATTRIBUTE_COLOR.at_shader_location(1),
])?;
let (label, blend, depth_write_enabled);
if key.contains(MeshPipelineKey::TRANSPARENT_MAIN_PASS) {
if key.contains(MeshPipelineKey::BLEND_ALPHA) {
label = "transparent_mesh_pipeline".into();
blend = Some(BlendState::ALPHA_BLENDING);
// For the transparent pass, fragments that are closer will be alpha
@@ -96,7 +97,7 @@ pub mod r3d {
write_mask: ColorWrites::ALL,
})],
}),
layout: Some(vec![self.mesh_pipeline.view_layout.clone()]),
layout: vec![self.mesh_pipeline.view_layout.clone()],
primitive: PrimitiveState {
front_face: FrontFace::Ccw,
cull_mode: None,
@@ -128,6 +129,7 @@ pub mod r3d {
alpha_to_coverage_enabled: false,
},
label: Some(label),
push_constant_ranges: vec![],
})
}
}
@@ -147,7 +149,7 @@ pub mod r3d {
.read()
.get_id::<DrawDebugLines>()
.unwrap();
let key = MeshPipelineKey::from_msaa_samples(msaa.samples);
let key = MeshPipelineKey::from_msaa_samples(msaa.samples());
for (view, mut transparent_phase) in views.iter_mut() {
let view_matrix = view.transform.compute_matrix();
let view_row_2 = view_matrix.row(2);
@@ -183,7 +185,6 @@ pub mod r3d {
pub mod r2d {
use bevy::{
asset::Handle,
core_pipeline::core_2d::Transparent2d,
prelude::*,
render::{
mesh::MeshVertexBufferLayout,
@@ -200,12 +201,13 @@ pub mod r2d {
texture::BevyDefault,
view::{Msaa, VisibleEntities},
},
sprite::{
DrawMesh2d, Mesh2dHandle, Mesh2dPipeline, Mesh2dPipelineKey, Mesh2dUniform,
SetMesh2dBindGroup, SetMesh2dViewBindGroup,
},
utils::FloatOrd,
};
use bevy_core_pipeline::core_2d::Transparent2d;
use bevy_sprite::{
DrawMesh2d, Mesh2dHandle, Mesh2dPipeline, Mesh2dPipelineKey, Mesh2dUniform,
SetMesh2dBindGroup, SetMesh2dViewBindGroup,
};
use crate::lines::{RenderDebugLinesMesh, DEBUG_LINES_SHADER_HANDLE};
@@ -264,7 +266,7 @@ pub mod r2d {
write_mask: ColorWrites::ALL,
})],
}),
layout: Some(vec![self.mesh_pipeline.view_layout.clone()]),
layout: vec![self.mesh_pipeline.view_layout.clone()],
primitive: PrimitiveState {
front_face: FrontFace::Ccw,
cull_mode: None,
@@ -281,6 +283,7 @@ pub mod r2d {
alpha_to_coverage_enabled: false,
},
label: None,
push_constant_ranges: vec![],
})
}
}
@@ -297,7 +300,7 @@ pub mod r2d {
) {
for (view, mut phase) in views.iter_mut() {
let draw_mesh2d = draw2d_functions.read().get_id::<DrawDebugLines>().unwrap();
let msaa_key = Mesh2dPipelineKey::from_msaa_samples(msaa.samples);
let msaa_key = Mesh2dPipelineKey::from_msaa_samples(msaa.samples());
for visible_entity in &view.entities {
if let Ok((uniform, mesh_handle)) = material_meshes.get(*visible_entity) {