Skip to content

Commit 3cdcc86

Browse files
committed
move ash_renderer into mod ash, xtask generate
1 parent 300c317 commit 3cdcc86

File tree

12 files changed

+214
-204
lines changed

12 files changed

+214
-204
lines changed

generated/graphics/cargo-gpu/mygraphics/src/device.rs renamed to generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/device.rs

File renamed without changes.

generated/graphics/cargo-gpu/mygraphics/src/graphics.rs renamed to generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/graphics.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use crate::device::MyDevice;
2-
use crate::single_command_buffer::SingleCommandBuffer;
3-
use crate::swapchain::DrawFrame;
1+
use crate::ash_renderer::device::MyDevice;
2+
use crate::ash_renderer::single_command_buffer::SingleCommandBuffer;
3+
use crate::ash_renderer::swapchain::DrawFrame;
44
use anyhow::Context;
55
use ash::vk;
66
use mygraphics_shaders::ShaderConstants;
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
use crate::ash_renderer::device::MyDevice;
2+
use crate::ash_renderer::graphics::{MyRenderPipelineManager, MyRenderer};
3+
use crate::ash_renderer::swapchain::MySwapchainManager;
4+
use ash::util::read_spv;
5+
use mygraphics_shaders::ShaderConstants;
6+
use raw_window_handle::HasDisplayHandle as _;
7+
use winit::event_loop::ActiveEventLoop;
8+
use winit::{
9+
event::{Event, WindowEvent},
10+
event_loop::{ControlFlow, EventLoop},
11+
};
12+
13+
pub mod device;
14+
pub mod graphics;
15+
pub mod single_command_buffer;
16+
pub mod swapchain;
17+
18+
pub fn main() -> anyhow::Result<()> {
19+
let enable_debug_layer = std::env::var("DEBUG_LAYER")
20+
.map(|e| !(e == "0" || e == "false"))
21+
.unwrap_or(false);
22+
23+
// runtime setup
24+
let event_loop = EventLoop::new()?;
25+
// FIXME(eddyb) incomplete `winit` upgrade, follow the guides in:
26+
// https://github.com/rust-windowing/winit/releases/tag/v0.30.0
27+
#[allow(deprecated)]
28+
let window = event_loop.create_window(
29+
winit::window::Window::default_attributes()
30+
.with_title("Rust GPU - ash")
31+
.with_inner_size(winit::dpi::LogicalSize::new(
32+
f64::from(1280),
33+
f64::from(720),
34+
)),
35+
)?;
36+
37+
let extensions = ash_window::enumerate_required_extensions(window.display_handle()?.as_raw())?;
38+
let device = MyDevice::new(extensions, enable_debug_layer)?;
39+
let mut swapchain = MySwapchainManager::new(device.clone(), window)?;
40+
let mut renderer = MyRenderer::new(MyRenderPipelineManager::new(
41+
device.clone(),
42+
swapchain.surface_format.format,
43+
get_shaders()?,
44+
)?)?;
45+
46+
let start = std::time::Instant::now();
47+
let mut event_handler =
48+
move |event: Event<_>, event_loop_window_target: &ActiveEventLoop| match event {
49+
Event::AboutToWait => swapchain.render(|frame| {
50+
let extent = frame.extent;
51+
let push_constants = ShaderConstants {
52+
width: extent.width,
53+
height: extent.height,
54+
time: start.elapsed().as_secs_f32(),
55+
};
56+
57+
renderer.render_frame(frame, push_constants)?;
58+
Ok(())
59+
}),
60+
Event::WindowEvent { event, .. } => {
61+
match event {
62+
WindowEvent::KeyboardInput {
63+
event:
64+
winit::event::KeyEvent {
65+
logical_key:
66+
winit::keyboard::Key::Named(winit::keyboard::NamedKey::Escape),
67+
state: winit::event::ElementState::Pressed,
68+
..
69+
},
70+
..
71+
}
72+
| WindowEvent::CloseRequested => event_loop_window_target.exit(),
73+
WindowEvent::Resized(_) => {
74+
swapchain.should_recreate();
75+
}
76+
_ => {}
77+
}
78+
79+
Ok(())
80+
}
81+
_ => {
82+
event_loop_window_target.set_control_flow(ControlFlow::Poll);
83+
Ok(())
84+
}
85+
};
86+
87+
// FIXME(eddyb) incomplete `winit` upgrade, follow the guides in:
88+
// https://github.com/rust-windowing/winit/releases/tag/v0.30.0
89+
#[allow(deprecated)]
90+
event_loop.run(move |event, event_loop_window_target| {
91+
event_handler(event, event_loop_window_target).unwrap();
92+
})?;
93+
Ok(())
94+
}
95+
96+
pub fn get_shaders() -> anyhow::Result<Vec<u32>> {
97+
// set in the build script
98+
const SPV_BYTES: &[u8] = include_bytes!(env!("SHADER_SPV_PATH"));
99+
Ok(read_spv(&mut std::io::Cursor::new(SPV_BYTES))?)
100+
}

generated/graphics/spirv-builder/mygraphics/src/single_command_buffer.rs renamed to generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/single_command_buffer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::device::MyDevice;
1+
use crate::ash_renderer::device::MyDevice;
22
use ash::vk;
33
use std::sync::Arc;
44

generated/graphics/spirv-builder/mygraphics/src/swapchain.rs renamed to generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/swapchain.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::device::MyDevice;
1+
use crate::ash_renderer::device::MyDevice;
22
use anyhow::Context;
33
use ash::vk;
44
use raw_window_handle::{HasDisplayHandle, HasWindowHandle};

generated/graphics/cargo-gpu/mygraphics/src/main.rs

Lines changed: 2 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -70,103 +70,8 @@
7070
// crate-specific exceptions:
7171
// #![allow()]
7272

73-
use crate::device::MyDevice;
74-
use crate::graphics::{MyRenderPipelineManager, MyRenderer};
75-
use crate::swapchain::MySwapchainManager;
76-
use ash::util::read_spv;
77-
use mygraphics_shaders::ShaderConstants;
78-
use raw_window_handle::HasDisplayHandle as _;
79-
use winit::event_loop::ActiveEventLoop;
80-
use winit::{
81-
event::{Event, WindowEvent},
82-
event_loop::{ControlFlow, EventLoop},
83-
};
84-
85-
pub mod device;
86-
pub mod graphics;
87-
pub mod single_command_buffer;
88-
pub mod swapchain;
73+
pub mod ash_renderer;
8974

9075
pub fn main() -> anyhow::Result<()> {
91-
let enable_debug_layer = std::env::var("DEBUG_LAYER")
92-
.map(|e| !(e == "0" || e == "false"))
93-
.unwrap_or(false);
94-
95-
// runtime setup
96-
let event_loop = EventLoop::new()?;
97-
// FIXME(eddyb) incomplete `winit` upgrade, follow the guides in:
98-
// https://github.com/rust-windowing/winit/releases/tag/v0.30.0
99-
#[allow(deprecated)]
100-
let window = event_loop.create_window(
101-
winit::window::Window::default_attributes()
102-
.with_title("Rust GPU - ash")
103-
.with_inner_size(winit::dpi::LogicalSize::new(
104-
f64::from(1280),
105-
f64::from(720),
106-
)),
107-
)?;
108-
109-
let extensions = ash_window::enumerate_required_extensions(window.display_handle()?.as_raw())?;
110-
let device = MyDevice::new(extensions, enable_debug_layer)?;
111-
let mut swapchain = MySwapchainManager::new(device.clone(), window)?;
112-
let mut renderer = MyRenderer::new(MyRenderPipelineManager::new(
113-
device.clone(),
114-
swapchain.surface_format.format,
115-
get_shaders()?,
116-
)?)?;
117-
118-
let start = std::time::Instant::now();
119-
let mut event_handler =
120-
move |event: Event<_>, event_loop_window_target: &ActiveEventLoop| match event {
121-
Event::AboutToWait => swapchain.render(|frame| {
122-
let extent = frame.extent;
123-
let push_constants = ShaderConstants {
124-
width: extent.width,
125-
height: extent.height,
126-
time: start.elapsed().as_secs_f32(),
127-
};
128-
129-
renderer.render_frame(frame, push_constants)?;
130-
Ok(())
131-
}),
132-
Event::WindowEvent { event, .. } => {
133-
match event {
134-
WindowEvent::KeyboardInput {
135-
event:
136-
winit::event::KeyEvent {
137-
logical_key:
138-
winit::keyboard::Key::Named(winit::keyboard::NamedKey::Escape),
139-
state: winit::event::ElementState::Pressed,
140-
..
141-
},
142-
..
143-
}
144-
| WindowEvent::CloseRequested => event_loop_window_target.exit(),
145-
WindowEvent::Resized(_) => {
146-
swapchain.should_recreate();
147-
}
148-
_ => {}
149-
}
150-
151-
Ok(())
152-
}
153-
_ => {
154-
event_loop_window_target.set_control_flow(ControlFlow::Poll);
155-
Ok(())
156-
}
157-
};
158-
159-
// FIXME(eddyb) incomplete `winit` upgrade, follow the guides in:
160-
// https://github.com/rust-windowing/winit/releases/tag/v0.30.0
161-
#[allow(deprecated)]
162-
event_loop.run(move |event, event_loop_window_target| {
163-
event_handler(event, event_loop_window_target).unwrap();
164-
})?;
165-
Ok(())
166-
}
167-
168-
pub fn get_shaders() -> anyhow::Result<Vec<u32>> {
169-
// set in the build script
170-
const SPV_BYTES: &[u8] = include_bytes!(env!("SHADER_SPV_PATH"));
171-
Ok(read_spv(&mut std::io::Cursor::new(SPV_BYTES))?)
76+
ash_renderer::main()
17277
}

generated/graphics/spirv-builder/mygraphics/src/device.rs renamed to generated/graphics/spirv-builder/mygraphics/src/ash_renderer/device.rs

File renamed without changes.

generated/graphics/spirv-builder/mygraphics/src/graphics.rs renamed to generated/graphics/spirv-builder/mygraphics/src/ash_renderer/graphics.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use crate::device::MyDevice;
2-
use crate::single_command_buffer::SingleCommandBuffer;
3-
use crate::swapchain::DrawFrame;
1+
use crate::ash_renderer::device::MyDevice;
2+
use crate::ash_renderer::single_command_buffer::SingleCommandBuffer;
3+
use crate::ash_renderer::swapchain::DrawFrame;
44
use anyhow::Context;
55
use ash::vk;
66
use mygraphics_shaders::ShaderConstants;
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
use crate::ash_renderer::device::MyDevice;
2+
use crate::ash_renderer::graphics::{MyRenderPipelineManager, MyRenderer};
3+
use crate::ash_renderer::swapchain::MySwapchainManager;
4+
use ash::util::read_spv;
5+
use mygraphics_shaders::ShaderConstants;
6+
use raw_window_handle::HasDisplayHandle as _;
7+
use winit::event_loop::ActiveEventLoop;
8+
use winit::{
9+
event::{Event, WindowEvent},
10+
event_loop::{ControlFlow, EventLoop},
11+
};
12+
13+
pub mod device;
14+
pub mod graphics;
15+
pub mod single_command_buffer;
16+
pub mod swapchain;
17+
18+
pub fn main() -> anyhow::Result<()> {
19+
let enable_debug_layer = std::env::var("DEBUG_LAYER")
20+
.map(|e| !(e == "0" || e == "false"))
21+
.unwrap_or(false);
22+
23+
// runtime setup
24+
let event_loop = EventLoop::new()?;
25+
// FIXME(eddyb) incomplete `winit` upgrade, follow the guides in:
26+
// https://github.com/rust-windowing/winit/releases/tag/v0.30.0
27+
#[allow(deprecated)]
28+
let window = event_loop.create_window(
29+
winit::window::Window::default_attributes()
30+
.with_title("Rust GPU - ash")
31+
.with_inner_size(winit::dpi::LogicalSize::new(
32+
f64::from(1280),
33+
f64::from(720),
34+
)),
35+
)?;
36+
37+
let extensions = ash_window::enumerate_required_extensions(window.display_handle()?.as_raw())?;
38+
let device = MyDevice::new(extensions, enable_debug_layer)?;
39+
let mut swapchain = MySwapchainManager::new(device.clone(), window)?;
40+
let mut renderer = MyRenderer::new(MyRenderPipelineManager::new(
41+
device.clone(),
42+
swapchain.surface_format.format,
43+
get_shaders()?,
44+
)?)?;
45+
46+
let start = std::time::Instant::now();
47+
let mut event_handler =
48+
move |event: Event<_>, event_loop_window_target: &ActiveEventLoop| match event {
49+
Event::AboutToWait => swapchain.render(|frame| {
50+
let extent = frame.extent;
51+
let push_constants = ShaderConstants {
52+
width: extent.width,
53+
height: extent.height,
54+
time: start.elapsed().as_secs_f32(),
55+
};
56+
57+
renderer.render_frame(frame, push_constants)?;
58+
Ok(())
59+
}),
60+
Event::WindowEvent { event, .. } => {
61+
match event {
62+
WindowEvent::KeyboardInput {
63+
event:
64+
winit::event::KeyEvent {
65+
logical_key:
66+
winit::keyboard::Key::Named(winit::keyboard::NamedKey::Escape),
67+
state: winit::event::ElementState::Pressed,
68+
..
69+
},
70+
..
71+
}
72+
| WindowEvent::CloseRequested => event_loop_window_target.exit(),
73+
WindowEvent::Resized(_) => {
74+
swapchain.should_recreate();
75+
}
76+
_ => {}
77+
}
78+
79+
Ok(())
80+
}
81+
_ => {
82+
event_loop_window_target.set_control_flow(ControlFlow::Poll);
83+
Ok(())
84+
}
85+
};
86+
87+
// FIXME(eddyb) incomplete `winit` upgrade, follow the guides in:
88+
// https://github.com/rust-windowing/winit/releases/tag/v0.30.0
89+
#[allow(deprecated)]
90+
event_loop.run(move |event, event_loop_window_target| {
91+
event_handler(event, event_loop_window_target).unwrap();
92+
})?;
93+
Ok(())
94+
}
95+
96+
pub fn get_shaders() -> anyhow::Result<Vec<u32>> {
97+
// set in the build script
98+
const SPV_BYTES: &[u8] = include_bytes!(env!("SHADER_SPV_PATH"));
99+
Ok(read_spv(&mut std::io::Cursor::new(SPV_BYTES))?)
100+
}

generated/graphics/cargo-gpu/mygraphics/src/single_command_buffer.rs renamed to generated/graphics/spirv-builder/mygraphics/src/ash_renderer/single_command_buffer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::device::MyDevice;
1+
use crate::ash_renderer::device::MyDevice;
22
use ash::vk;
33
use std::sync::Arc;
44

0 commit comments

Comments
 (0)