MCPcopy Create free account
hub / github.com/Rust-GPU/rust-gpu / draw

Method draw

examples/runners/ash/src/main.rs:970–1028  ·  view source on GitHub ↗
(
        &self,
        pipeline: &Pipeline,
        framebuffer: vk::Framebuffer,
        clear_values: &[vk::ClearValue],
    )

Source from the content-addressed store, hash-verified

968 }
969
970 pub fn draw(
971 &self,
972 pipeline: &Pipeline,
973 framebuffer: vk::Framebuffer,
974 clear_values: &[vk::ClearValue],
975 ) {
976 let render_pass_begin_info = vk::RenderPassBeginInfo::builder()
977 .render_pass(self.render_pass)
978 .framebuffer(framebuffer)
979 .render_area(vk::Rect2D {
980 offset: vk::Offset2D { x: 0, y: 0 },
981 extent: self.scissors[0].extent,
982 })
983 .clear_values(clear_values)
984 .build();
985 self.record_submit_commandbuffer(
986 &[vk::PipelineStageFlags::COLOR_ATTACHMENT_OUTPUT],
987 |device, draw_command_buffer| unsafe {
988 device.cmd_begin_render_pass(
989 draw_command_buffer,
990 &render_pass_begin_info,
991 vk::SubpassContents::INLINE,
992 );
993 device.cmd_bind_pipeline(
994 draw_command_buffer,
995 vk::PipelineBindPoint::GRAPHICS,
996 pipeline.pipeline,
997 );
998 device.cmd_set_viewport(draw_command_buffer, 0, &self.viewports);
999 device.cmd_set_scissor(draw_command_buffer, 0, &self.scissors);
1000
1001 let push_constants = ShaderConstants {
1002 width: self.scissors[0].extent.width,
1003 height: self.scissors[0].extent.height,
1004 time: self.start.elapsed().as_secs_f32(),
1005
1006 // FIXME(eddyb) implement mouse support for the ash runner.
1007 cursor_x: 0.0,
1008 cursor_y: 0.0,
1009 drag_start_x: 0.0,
1010 drag_start_y: 0.0,
1011 drag_end_x: 0.0,
1012 drag_end_y: 0.0,
1013 mouse_button_pressed: 0,
1014 mouse_button_press_time: [f32::NEG_INFINITY; 3],
1015 };
1016 device.cmd_push_constants(
1017 draw_command_buffer,
1018 pipeline.pipeline_layout,
1019 ash::vk::ShaderStageFlags::ALL,
1020 0,
1021 any_as_u8_slice(&push_constants),
1022 );
1023
1024 device.cmd_draw(draw_command_buffer, 3, 1, 0, 0);
1025 device.cmd_end_render_pass(draw_command_buffer);
1026 },
1027 );

Callers 2

renderMethod · 0.80
runFunction · 0.80

Calls 3

any_as_u8_sliceFunction · 0.85
buildMethod · 0.45

Tested by

no test coverage detected