Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 5 additions & 5 deletions crates/bevy_core_pipeline/src/core_2d/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ use bevy_render::{
render_graph::{EmptyNode, RenderGraph, SlotInfo, SlotType},
render_phase::{
batch_phase_system, sort_phase_system, BatchedPhaseItem, CachedRenderPipelinePhaseItem,
DrawFunctionId, DrawFunctions, PhaseItem, RenderPhase,
PhaseItem, RenderCommandId, RenderCommands, RenderPhase,
},
render_resource::CachedRenderPipelineId,
Extract, ExtractSchedule, RenderApp, RenderSet,
Expand All @@ -51,7 +51,7 @@ impl Plugin for Core2dPlugin {
};

render_app
.init_resource::<DrawFunctions<Transparent2d>>()
.init_resource::<RenderCommands<Transparent2d>>()
.add_system(extract_core_2d_camera_phases.in_schedule(ExtractSchedule))
.add_system(sort_phase_system::<Transparent2d>.in_set(RenderSet::PhaseSort))
.add_system(
Expand Down Expand Up @@ -109,7 +109,7 @@ pub struct Transparent2d {
pub sort_key: FloatOrd,
pub entity: Entity,
pub pipeline: CachedRenderPipelineId,
pub draw_function: DrawFunctionId,
pub render_command_id: RenderCommandId,
/// Range in the vertex buffer of this item
pub batch_range: Option<Range<u32>>,
}
Expand All @@ -128,8 +128,8 @@ impl PhaseItem for Transparent2d {
}

#[inline]
fn draw_function(&self) -> DrawFunctionId {
self.draw_function
fn render_command_id(&self) -> RenderCommandId {
self.render_command_id
}

#[inline]
Expand Down
28 changes: 14 additions & 14 deletions crates/bevy_core_pipeline/src/core_3d/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ use bevy_render::{
prelude::Msaa,
render_graph::{EmptyNode, RenderGraph, SlotInfo, SlotType},
render_phase::{
sort_phase_system, CachedRenderPipelinePhaseItem, DrawFunctionId, DrawFunctions, PhaseItem,
RenderPhase,
sort_phase_system, CachedRenderPipelinePhaseItem, PhaseItem, RenderCommandId,
RenderCommands, RenderPhase,
},
render_resource::{
CachedRenderPipelineId, Extent3d, TextureDescriptor, TextureDimension, TextureFormat,
Expand Down Expand Up @@ -65,9 +65,9 @@ impl Plugin for Core3dPlugin {
};

render_app
.init_resource::<DrawFunctions<Opaque3d>>()
.init_resource::<DrawFunctions<AlphaMask3d>>()
.init_resource::<DrawFunctions<Transparent3d>>()
.init_resource::<RenderCommands<Opaque3d>>()
.init_resource::<RenderCommands<AlphaMask3d>>()
.init_resource::<RenderCommands<Transparent3d>>()
.add_system(extract_core_3d_camera_phases.in_schedule(ExtractSchedule))
.add_system(
prepare_core_3d_depth_textures
Expand Down Expand Up @@ -137,7 +137,7 @@ pub struct Opaque3d {
pub distance: f32,
pub pipeline: CachedRenderPipelineId,
pub entity: Entity,
pub draw_function: DrawFunctionId,
pub render_command_id: RenderCommandId,
}

impl PhaseItem for Opaque3d {
Expand All @@ -155,8 +155,8 @@ impl PhaseItem for Opaque3d {
}

#[inline]
fn draw_function(&self) -> DrawFunctionId {
self.draw_function
fn render_command_id(&self) -> RenderCommandId {
self.render_command_id
}

#[inline]
Expand All @@ -177,7 +177,7 @@ pub struct AlphaMask3d {
pub distance: f32,
pub pipeline: CachedRenderPipelineId,
pub entity: Entity,
pub draw_function: DrawFunctionId,
pub render_command_id: RenderCommandId,
}

impl PhaseItem for AlphaMask3d {
Expand All @@ -195,8 +195,8 @@ impl PhaseItem for AlphaMask3d {
}

#[inline]
fn draw_function(&self) -> DrawFunctionId {
self.draw_function
fn render_command_id(&self) -> RenderCommandId {
self.render_command_id
}

#[inline]
Expand All @@ -217,7 +217,7 @@ pub struct Transparent3d {
pub distance: f32,
pub pipeline: CachedRenderPipelineId,
pub entity: Entity,
pub draw_function: DrawFunctionId,
pub render_command_id: RenderCommandId,
}

impl PhaseItem for Transparent3d {
Expand All @@ -235,8 +235,8 @@ impl PhaseItem for Transparent3d {
}

#[inline]
fn draw_function(&self) -> DrawFunctionId {
self.draw_function
fn render_command_id(&self) -> RenderCommandId {
self.render_command_id
}

#[inline]
Expand Down
15 changes: 8 additions & 7 deletions crates/bevy_core_pipeline/src/prepass/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ use std::cmp::Reverse;

use bevy_ecs::prelude::*;
use bevy_reflect::Reflect;
use bevy_render::render_phase::RenderCommandId;
use bevy_render::{
render_phase::{CachedRenderPipelinePhaseItem, DrawFunctionId, PhaseItem},
render_phase::{CachedRenderPipelinePhaseItem, PhaseItem},
render_resource::{CachedRenderPipelineId, Extent3d, TextureFormat},
texture::CachedTexture,
};
Expand Down Expand Up @@ -73,7 +74,7 @@ pub struct Opaque3dPrepass {
pub distance: f32,
pub entity: Entity,
pub pipeline_id: CachedRenderPipelineId,
pub draw_function: DrawFunctionId,
pub render_command_id: RenderCommandId,
}

impl PhaseItem for Opaque3dPrepass {
Expand All @@ -91,8 +92,8 @@ impl PhaseItem for Opaque3dPrepass {
}

#[inline]
fn draw_function(&self) -> DrawFunctionId {
self.draw_function
fn render_command_id(&self) -> RenderCommandId {
self.render_command_id
}

#[inline]
Expand All @@ -118,7 +119,7 @@ pub struct AlphaMask3dPrepass {
pub distance: f32,
pub entity: Entity,
pub pipeline_id: CachedRenderPipelineId,
pub draw_function: DrawFunctionId,
pub render_command_id: RenderCommandId,
}

impl PhaseItem for AlphaMask3dPrepass {
Expand All @@ -136,8 +137,8 @@ impl PhaseItem for AlphaMask3dPrepass {
}

#[inline]
fn draw_function(&self) -> DrawFunctionId {
self.draw_function
fn render_command_id(&self) -> RenderCommandId {
self.render_command_id
}

#[inline]
Expand Down
22 changes: 11 additions & 11 deletions crates/bevy_pbr/src/material.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ use bevy_render::{
prelude::Image,
render_asset::{PrepareAssetSet, RenderAssets},
render_phase::{
AddRenderCommand, DrawFunctions, PhaseItem, RenderCommand, RenderCommandResult,
AddRenderCommand, PhaseItem, RenderCommand, RenderCommandResult, RenderCommands,
RenderPhase, SetItemPipeline, TrackedRenderPass,
},
render_resource::{
Expand Down Expand Up @@ -190,7 +190,7 @@ where

if let Ok(render_app) = app.get_sub_app_mut(RenderApp) {
render_app
.init_resource::<DrawFunctions<Shadow>>()
.init_resource::<RenderCommands<Shadow>>()
.add_render_command::<Shadow, DrawPrepass<M>>()
.add_render_command::<Transparent3d, DrawMaterial<M>>()
.add_render_command::<Opaque3d, DrawMaterial<M>>()
Expand Down Expand Up @@ -360,9 +360,9 @@ impl<P: PhaseItem, M: Material, const I: usize> RenderCommand<P> for SetMaterial

#[allow(clippy::too_many_arguments)]
pub fn queue_material_meshes<M: Material>(
opaque_draw_functions: Res<DrawFunctions<Opaque3d>>,
alpha_mask_draw_functions: Res<DrawFunctions<AlphaMask3d>>,
transparent_draw_functions: Res<DrawFunctions<Transparent3d>>,
opaque_render_commands: Res<RenderCommands<Opaque3d>>,
alpha_mask_render_commands: Res<RenderCommands<AlphaMask3d>>,
transparent_render_commands: Res<RenderCommands<Transparent3d>>,
material_pipeline: Res<MaterialPipeline<M>>,
mut pipelines: ResMut<SpecializedMeshPipelines<MaterialPipeline<M>>>,
pipeline_cache: Res<PipelineCache>,
Expand Down Expand Up @@ -395,9 +395,9 @@ pub fn queue_material_meshes<M: Material>(
mut transparent_phase,
) in &mut views
{
let draw_opaque_pbr = opaque_draw_functions.read().id::<DrawMaterial<M>>();
let draw_alpha_mask_pbr = alpha_mask_draw_functions.read().id::<DrawMaterial<M>>();
let draw_transparent_pbr = transparent_draw_functions.read().id::<DrawMaterial<M>>();
let draw_opaque_pbr = opaque_render_commands.id::<DrawMaterial<M>>();
let draw_alpha_mask_pbr = alpha_mask_render_commands.id::<DrawMaterial<M>>();
let draw_transparent_pbr = transparent_render_commands.id::<DrawMaterial<M>>();

let mut view_key = MeshPipelineKey::from_msaa_samples(msaa.samples())
| MeshPipelineKey::from_hdr(view.hdr);
Expand Down Expand Up @@ -483,15 +483,15 @@ pub fn queue_material_meshes<M: Material>(
AlphaMode::Opaque => {
opaque_phase.add(Opaque3d {
entity: *visible_entity,
draw_function: draw_opaque_pbr,
render_command_id: draw_opaque_pbr,
pipeline: pipeline_id,
distance,
});
}
AlphaMode::Mask(_) => {
alpha_mask_phase.add(AlphaMask3d {
entity: *visible_entity,
draw_function: draw_alpha_mask_pbr,
render_command_id: draw_alpha_mask_pbr,
pipeline: pipeline_id,
distance,
});
Expand All @@ -502,7 +502,7 @@ pub fn queue_material_meshes<M: Material>(
| AlphaMode::Multiply => {
transparent_phase.add(Transparent3d {
entity: *visible_entity,
draw_function: draw_transparent_pbr,
render_command_id: draw_transparent_pbr,
pipeline: pipeline_id,
distance,
});
Expand Down
27 changes: 11 additions & 16 deletions crates/bevy_pbr/src/prepass/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ use bevy_render::{
prelude::{Camera, Mesh},
render_asset::RenderAssets,
render_phase::{
sort_phase_system, AddRenderCommand, DrawFunctions, PhaseItem, RenderCommand,
RenderCommandResult, RenderPhase, SetItemPipeline, TrackedRenderPass,
sort_phase_system, AddRenderCommand, PhaseItem, RenderCommand, RenderCommandResult,
RenderCommands, RenderPhase, SetItemPipeline, TrackedRenderPass,
},
render_resource::{
BindGroup, BindGroupDescriptor, BindGroupEntry, BindGroupLayout, BindGroupLayoutDescriptor,
Expand Down Expand Up @@ -138,8 +138,8 @@ where
.add_system(queue_prepass_material_meshes::<M>.in_set(RenderSet::Queue))
.add_system(sort_phase_system::<Opaque3dPrepass>.in_set(RenderSet::PhaseSort))
.add_system(sort_phase_system::<AlphaMask3dPrepass>.in_set(RenderSet::PhaseSort))
.init_resource::<DrawFunctions<Opaque3dPrepass>>()
.init_resource::<DrawFunctions<AlphaMask3dPrepass>>()
.init_resource::<RenderCommands<Opaque3dPrepass>>()
.init_resource::<RenderCommands<AlphaMask3dPrepass>>()
.add_render_command::<Opaque3dPrepass, DrawPrepass<M>>()
.add_render_command::<AlphaMask3dPrepass, DrawPrepass<M>>();
}
Expand Down Expand Up @@ -590,8 +590,8 @@ pub fn queue_prepass_view_bind_group<M: Material>(

#[allow(clippy::too_many_arguments)]
pub fn queue_prepass_material_meshes<M: Material>(
opaque_draw_functions: Res<DrawFunctions<Opaque3dPrepass>>,
alpha_mask_draw_functions: Res<DrawFunctions<AlphaMask3dPrepass>>,
opaque_render_commands: Res<RenderCommands<Opaque3dPrepass>>,
alpha_mask_render_commands: Res<RenderCommands<AlphaMask3dPrepass>>,
prepass_pipeline: Res<PrepassPipeline<M>>,
mut pipelines: ResMut<SpecializedMeshPipelines<PrepassPipeline<M>>>,
pipeline_cache: Res<PipelineCache>,
Expand All @@ -610,14 +610,9 @@ pub fn queue_prepass_material_meshes<M: Material>(
) where
M::Data: PartialEq + Eq + Hash + Clone,
{
let opaque_draw_prepass = opaque_draw_functions
.read()
.get_id::<DrawPrepass<M>>()
.unwrap();
let alpha_mask_draw_prepass = alpha_mask_draw_functions
.read()
.get_id::<DrawPrepass<M>>()
.unwrap();
let opaque_draw_prepass = opaque_render_commands.id::<DrawPrepass<M>>();
let alpha_mask_draw_prepass = alpha_mask_render_commands.id::<DrawPrepass<M>>();

for (
view,
visible_entities,
Expand Down Expand Up @@ -684,15 +679,15 @@ pub fn queue_prepass_material_meshes<M: Material>(
AlphaMode::Opaque => {
opaque_phase.add(Opaque3dPrepass {
entity: *visible_entity,
draw_function: opaque_draw_prepass,
render_command_id: opaque_draw_prepass,
pipeline_id,
distance,
});
}
AlphaMode::Mask(_) => {
alpha_mask_phase.add(AlphaMask3dPrepass {
entity: *visible_entity,
draw_function: alpha_mask_draw_prepass,
render_command_id: alpha_mask_draw_prepass,
pipeline_id,
distance,
});
Expand Down
17 changes: 8 additions & 9 deletions crates/bevy_pbr/src/render/light.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,14 @@ use bevy_asset::Handle;
use bevy_core_pipeline::core_3d::Transparent3d;
use bevy_ecs::prelude::*;
use bevy_math::{Mat4, UVec3, UVec4, Vec2, Vec3, Vec3Swizzles, Vec4, Vec4Swizzles};
use bevy_render::render_phase::{RenderCommandId, RenderCommands};
use bevy_render::{
camera::Camera,
color::Color,
mesh::Mesh,
render_asset::RenderAssets,
render_graph::{Node, NodeRunError, RenderGraphContext, SlotInfo, SlotType},
render_phase::{
CachedRenderPipelinePhaseItem, DrawFunctionId, DrawFunctions, PhaseItem, RenderPhase,
},
render_phase::{CachedRenderPipelinePhaseItem, PhaseItem, RenderPhase},
render_resource::*,
renderer::{RenderContext, RenderDevice, RenderQueue},
texture::*,
Expand Down Expand Up @@ -1545,7 +1544,7 @@ pub fn prepare_clusters(

#[allow(clippy::too_many_arguments)]
pub fn queue_shadows<M: Material>(
shadow_draw_functions: Res<DrawFunctions<Shadow>>,
shadow_render_commands: Res<RenderCommands<Shadow>>,
prepass_pipeline: Res<PrepassPipeline<M>>,
casting_meshes: Query<(&Handle<Mesh>, &Handle<M>), Without<NotShadowCaster>>,
render_meshes: Res<RenderAssets<Mesh>>,
Expand All @@ -1561,7 +1560,7 @@ pub fn queue_shadows<M: Material>(
M::Data: PartialEq + Eq + Hash + Clone,
{
for (entity, view_lights) in &view_lights {
let draw_shadow_mesh = shadow_draw_functions.read().id::<DrawPrepass<M>>();
let draw_shadow_mesh = shadow_render_commands.id::<DrawPrepass<M>>();
for view_light_entity in view_lights.lights.iter().copied() {
let (light_entity, mut shadow_phase) =
view_light_shadow_phases.get_mut(view_light_entity).unwrap();
Expand Down Expand Up @@ -1632,7 +1631,7 @@ pub fn queue_shadows<M: Material>(
};

shadow_phase.add(Shadow {
draw_function: draw_shadow_mesh,
render_command_id: draw_shadow_mesh,
pipeline: pipeline_id,
entity,
distance: 0.0, // TODO: sort back-to-front
Expand All @@ -1648,7 +1647,7 @@ pub struct Shadow {
pub distance: f32,
pub entity: Entity,
pub pipeline: CachedRenderPipelineId,
pub draw_function: DrawFunctionId,
pub render_command_id: RenderCommandId,
}

impl PhaseItem for Shadow {
Expand All @@ -1665,8 +1664,8 @@ impl PhaseItem for Shadow {
}

#[inline]
fn draw_function(&self) -> DrawFunctionId {
self.draw_function
fn render_command_id(&self) -> RenderCommandId {
self.render_command_id
}

#[inline]
Expand Down
Loading