@@ -24,7 +24,7 @@ pub mod graph {
2424}
2525pub const CORE_3D : & str = graph:: NAME ;
2626
27- use std:: cmp:: Reverse ;
27+ use std:: { cmp:: Reverse , ops :: Range } ;
2828
2929pub use camera_3d:: * ;
3030pub use main_opaque_pass_3d_node:: * ;
@@ -51,6 +51,7 @@ use bevy_render::{
5151 Extract , ExtractSchedule , Render , RenderApp , RenderSet ,
5252} ;
5353use bevy_utils:: { FloatOrd , HashMap } ;
54+ use nonmax:: NonMaxU32 ;
5455
5556use crate :: {
5657 prepass:: {
@@ -135,7 +136,8 @@ pub struct Opaque3d {
135136 pub pipeline : CachedRenderPipelineId ,
136137 pub entity : Entity ,
137138 pub draw_function : DrawFunctionId ,
138- pub batch_size : usize ,
139+ pub batch_range : Range < u32 > ,
140+ pub dynamic_offset : Option < NonMaxU32 > ,
139141}
140142
141143impl PhaseItem for Opaque3d {
@@ -164,8 +166,23 @@ impl PhaseItem for Opaque3d {
164166 }
165167
166168 #[ inline]
167- fn batch_size ( & self ) -> usize {
168- self . batch_size
169+ fn batch_range ( & self ) -> & Range < u32 > {
170+ & self . batch_range
171+ }
172+
173+ #[ inline]
174+ fn batch_range_mut ( & mut self ) -> & mut Range < u32 > {
175+ & mut self . batch_range
176+ }
177+
178+ #[ inline]
179+ fn dynamic_offset ( & self ) -> Option < NonMaxU32 > {
180+ self . dynamic_offset
181+ }
182+
183+ #[ inline]
184+ fn dynamic_offset_mut ( & mut self ) -> & mut Option < NonMaxU32 > {
185+ & mut self . dynamic_offset
169186 }
170187}
171188
@@ -181,7 +198,8 @@ pub struct AlphaMask3d {
181198 pub pipeline : CachedRenderPipelineId ,
182199 pub entity : Entity ,
183200 pub draw_function : DrawFunctionId ,
184- pub batch_size : usize ,
201+ pub batch_range : Range < u32 > ,
202+ pub dynamic_offset : Option < NonMaxU32 > ,
185203}
186204
187205impl PhaseItem for AlphaMask3d {
@@ -210,8 +228,23 @@ impl PhaseItem for AlphaMask3d {
210228 }
211229
212230 #[ inline]
213- fn batch_size ( & self ) -> usize {
214- self . batch_size
231+ fn batch_range ( & self ) -> & Range < u32 > {
232+ & self . batch_range
233+ }
234+
235+ #[ inline]
236+ fn batch_range_mut ( & mut self ) -> & mut Range < u32 > {
237+ & mut self . batch_range
238+ }
239+
240+ #[ inline]
241+ fn dynamic_offset ( & self ) -> Option < NonMaxU32 > {
242+ self . dynamic_offset
243+ }
244+
245+ #[ inline]
246+ fn dynamic_offset_mut ( & mut self ) -> & mut Option < NonMaxU32 > {
247+ & mut self . dynamic_offset
215248 }
216249}
217250
@@ -227,7 +260,8 @@ pub struct Transparent3d {
227260 pub pipeline : CachedRenderPipelineId ,
228261 pub entity : Entity ,
229262 pub draw_function : DrawFunctionId ,
230- pub batch_size : usize ,
263+ pub batch_range : Range < u32 > ,
264+ pub dynamic_offset : Option < NonMaxU32 > ,
231265}
232266
233267impl PhaseItem for Transparent3d {
@@ -255,8 +289,23 @@ impl PhaseItem for Transparent3d {
255289 }
256290
257291 #[ inline]
258- fn batch_size ( & self ) -> usize {
259- self . batch_size
292+ fn batch_range ( & self ) -> & Range < u32 > {
293+ & self . batch_range
294+ }
295+
296+ #[ inline]
297+ fn batch_range_mut ( & mut self ) -> & mut Range < u32 > {
298+ & mut self . batch_range
299+ }
300+
301+ #[ inline]
302+ fn dynamic_offset ( & self ) -> Option < NonMaxU32 > {
303+ self . dynamic_offset
304+ }
305+
306+ #[ inline]
307+ fn dynamic_offset_mut ( & mut self ) -> & mut Option < NonMaxU32 > {
308+ & mut self . dynamic_offset
260309 }
261310}
262311
0 commit comments