Add some of the missing methods to TrackedRenderPass (#3401)
				
					
				
			# Objective Add missing methods to `TrackedRenderPass` - `set_push_constants` - `set_viewport` - `insert_debug_marker` - `push_debug_group` - `pop_debug_group` - `set_blend_constant` https://docs.rs/wgpu/0.12.0/wgpu/struct.RenderPass.html I need `set_push_constants` but started adding the others as I noticed they were also missing. The `draw indirect` family of methods are still missing as are the `timestamp query` methods.
This commit is contained in:
		
							parent
							
								
									5479047aa2
								
							
						
					
					
						commit
						c04dfc1174
					
				| @ -1,5 +1,9 @@ | |||||||
| use crate::render_resource::{ | use crate::{ | ||||||
|  |     prelude::Color, | ||||||
|  |     render_resource::{ | ||||||
|         BindGroup, BindGroupId, BufferId, BufferSlice, RenderPipeline, RenderPipelineId, |         BindGroup, BindGroupId, BufferId, BufferSlice, RenderPipeline, RenderPipelineId, | ||||||
|  |         ShaderStages, | ||||||
|  |     }, | ||||||
| }; | }; | ||||||
| use bevy_utils::tracing::debug; | use bevy_utils::tracing::debug; | ||||||
| use std::ops::Range; | use std::ops::Range; | ||||||
| @ -235,4 +239,54 @@ impl<'a> TrackedRenderPass<'a> { | |||||||
|         debug!("set_scissor_rect: {} {} {} {}", x, y, width, height); |         debug!("set_scissor_rect: {} {} {} {}", x, y, width, height); | ||||||
|         self.pass.set_scissor_rect(x, y, width, height); |         self.pass.set_scissor_rect(x, y, width, height); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     /// Set push constant data.
 | ||||||
|  |     ///
 | ||||||
|  |     /// Features::PUSH_CONSTANTS must be enabled on the device in order to call these functions.
 | ||||||
|  |     pub fn set_push_constants(&mut self, stages: ShaderStages, offset: u32, data: &[u8]) { | ||||||
|  |         debug!( | ||||||
|  |             "set push constants: {:?} offset: {} data.len: {}", | ||||||
|  |             stages, | ||||||
|  |             offset, | ||||||
|  |             data.len() | ||||||
|  |         ); | ||||||
|  |         self.pass.set_push_constants(stages, offset, data) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     pub fn set_viewport( | ||||||
|  |         &mut self, | ||||||
|  |         x: f32, | ||||||
|  |         y: f32, | ||||||
|  |         width: f32, | ||||||
|  |         height: f32, | ||||||
|  |         min_depth: f32, | ||||||
|  |         max_depth: f32, | ||||||
|  |     ) { | ||||||
|  |         debug!( | ||||||
|  |             "set viewport: {} {} {} {} {} {}", | ||||||
|  |             x, y, width, height, min_depth, max_depth | ||||||
|  |         ); | ||||||
|  |         self.pass | ||||||
|  |             .set_viewport(x, y, width, height, min_depth, max_depth) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     pub fn insert_debug_marker(&mut self, label: &str) { | ||||||
|  |         debug!("insert debug marker: {}", label); | ||||||
|  |         self.pass.insert_debug_marker(label) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     pub fn push_debug_group(&mut self, label: &str) { | ||||||
|  |         debug!("push_debug_group marker: {}", label); | ||||||
|  |         self.pass.push_debug_group(label) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     pub fn pop_debug_group(&mut self) { | ||||||
|  |         debug!("pop_debug_group"); | ||||||
|  |         self.pass.pop_debug_group() | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     pub fn set_blend_constant(&mut self, color: Color) { | ||||||
|  |         debug!("set blend constant: {:?}", color); | ||||||
|  |         self.pass.set_blend_constant(wgpu::Color::from(color)) | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 aloucks
						aloucks