Skip to content

Commit b8e18aa

Browse files
committed
- fix warnings in examples + example cleanup
1 parent 90716b9 commit b8e18aa

9 files changed

Lines changed: 9 additions & 198 deletions

File tree

examples/bindless/main.rs

Lines changed: 0 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ fn main() -> Result<(), hotline_rs::Error> {
116116

117117
let fmt = swap_chain.get_backbuffer_pass().get_format_hash();
118118
let pso_pmfx = pmfx.get_render_pipeline_for_format("bindless", fmt)?;
119-
let pso_compute = pmfx.get_compute_pipeline("compute_rw")?;
120119

121120
let mut textures: Vec<gfx_platform::Texture> = Vec::new();
122121
let files = vec![
@@ -139,104 +138,13 @@ fn main() -> Result<(), hotline_rs::Error> {
139138
textures[3].get_srv_index().unwrap() as u32,
140139
];
141140

142-
// render target
143-
let rt_info = gfx::TextureInfo {
144-
format: gfx::Format::RGBA8n,
145-
tex_type: gfx::TextureType::Texture2D,
146-
width: 512,
147-
height: 512,
148-
depth: 1,
149-
array_layers: 1,
150-
mip_levels: 1,
151-
samples: 1,
152-
usage: gfx::TextureUsage::SHADER_RESOURCE | gfx::TextureUsage::RENDER_TARGET,
153-
initial_state: gfx::ResourceState::ShaderResource,
154-
};
155-
let render_target = dev.create_texture(&rt_info, data![]).unwrap();
156-
157-
// pass for render target with depth stencil
158-
let render_target_pass = dev
159-
.create_render_pass(&gfx::RenderPassInfo {
160-
render_targets: vec![&render_target],
161-
rt_clear: Some(gfx::ClearColour {
162-
r: 1.0,
163-
g: 0.0,
164-
b: 1.0,
165-
a: 1.0,
166-
}),
167-
depth_stencil: None, //Some(&depth_stencil),
168-
ds_clear: Some(gfx::ClearDepthStencil {
169-
depth: Some(1.0),
170-
stencil: None,
171-
}),
172-
resolve: false,
173-
discard: false,
174-
array_slice: 0
175-
})
176-
.unwrap();
177-
178-
// unordered access rw texture
179-
let rw_info = gfx::TextureInfo {
180-
format: gfx::Format::RGBA8n,
181-
tex_type: gfx::TextureType::Texture2D,
182-
width: 512,
183-
height: 512,
184-
depth: 1,
185-
array_layers: 1,
186-
mip_levels: 1,
187-
samples: 1,
188-
usage: gfx::TextureUsage::SHADER_RESOURCE | gfx::TextureUsage::UNORDERED_ACCESS,
189-
initial_state: gfx::ResourceState::ShaderResource,
190-
};
191-
let _rw_tex = dev.create_texture::<u8>(&rw_info, None).unwrap();
192-
193141
// ..
194142
let mut ci = 0;
195143
while app.run() {
196144
win.update(&mut app);
197145
swap_chain.update::<os_platform::App>(&mut dev, &win, &mut cmdbuffer);
198146
cmdbuffer.reset(&swap_chain);
199147

200-
// compute pass
201-
cmdbuffer.set_marker(0xff00ffff, "Frame Start");
202-
203-
cmdbuffer.begin_event(0xff0000ff, "Compute Pass");
204-
cmdbuffer.set_compute_pipeline(pso_compute);
205-
cmdbuffer.set_heap(pso_compute, dev.get_shader_heap());
206-
cmdbuffer.dispatch(
207-
gfx::Size3 {
208-
x: 512 / 16,
209-
y: 512 / 16,
210-
z: 1,
211-
},
212-
gfx::Size3 {
213-
x: 512,
214-
y: 512,
215-
z: 1,
216-
},
217-
);
218-
cmdbuffer.end_event();
219-
220-
// render target pass
221-
cmdbuffer.begin_event(0xff0000ff, "Render Target Pass");
222-
cmdbuffer.transition_barrier(&gfx::TransitionBarrier {
223-
texture: Some(&render_target),
224-
buffer: None,
225-
state_before: gfx::ResourceState::ShaderResource,
226-
state_after: gfx::ResourceState::RenderTarget,
227-
});
228-
229-
cmdbuffer.begin_render_pass(&render_target_pass);
230-
cmdbuffer.end_render_pass();
231-
232-
cmdbuffer.transition_barrier(&gfx::TransitionBarrier {
233-
texture: Some(&render_target),
234-
buffer: None,
235-
state_before: gfx::ResourceState::RenderTarget,
236-
state_after: gfx::ResourceState::ShaderResource,
237-
});
238-
cmdbuffer.end_event();
239-
240148
// main pass
241149
cmdbuffer.begin_event(0xff0000ff, "Main Pass");
242150
let vp_rect = win.get_viewport_rect();

examples/imgui_demo/main.rs

Lines changed: 1 addition & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,8 @@
1-
use hotline_rs::{*, prelude::*};
1+
use hotline_rs::*;
22

33
use os::{App, Window};
44
use gfx::{CmdBuf, Device, SwapChain};
55

6-
use std::fs;
7-
8-
#[repr(C)]
9-
struct Vertex {
10-
position: [f32; 2],
11-
uv: [f32; 2],
12-
color: [f32; 4],
13-
}
14-
156
fn main() -> Result<(), hotline_rs::Error> {
167
// app
178
let mut app = os_platform::App::create(os::AppInfo {
@@ -68,81 +59,6 @@ fn main() -> Result<(), hotline_rs::Error> {
6859
};
6960
let mut imgui = imgui::ImGui::create(&mut imgui_info).unwrap();
7061

71-
// dummy vb
72-
let vertices = [
73-
Vertex {
74-
position: [-1.0, -1.0],
75-
uv: [0.0, 0.0],
76-
color: [0.0, 0.0, 0.0, 1.0],
77-
},
78-
Vertex {
79-
position: [-1.0, 1.0],
80-
uv: [0.0, 0.0],
81-
color: [0.0, 1.0, 0.0, 1.0],
82-
},
83-
Vertex {
84-
position: [1.0, 1.0],
85-
uv: [0.0, 0.0],
86-
color: [1.0, 1.0, 0.0, 1.0],
87-
},
88-
Vertex {
89-
position: [1.0, -1.0],
90-
uv: [0.0, 0.0],
91-
color: [1.0, 0.0, 0.0, 1.0],
92-
},
93-
];
94-
95-
96-
let info = gfx::BufferInfo {
97-
usage: gfx::BufferUsage::VERTEX,
98-
cpu_access: gfx::CpuAccessFlags::NONE,
99-
format: gfx::Format::Unknown,
100-
stride: std::mem::size_of::<Vertex>(),
101-
num_elements: 4,
102-
initial_state: gfx::ResourceState::VertexConstantBuffer
103-
};
104-
105-
let vertex_buffer = dev.create_buffer(&info, Some(gfx::as_u8_slice(&vertices)))?;
106-
107-
// index buffer
108-
let indices: [u16; 6] = [0, 1, 2, 0, 2, 3];
109-
let info = gfx::BufferInfo {
110-
usage: gfx::BufferUsage::INDEX,
111-
cpu_access: gfx::CpuAccessFlags::NONE,
112-
format: gfx::Format::R16u,
113-
stride: std::mem::size_of::<u16>(),
114-
num_elements: 6,
115-
initial_state: gfx::ResourceState::IndexBuffer
116-
};
117-
let index_buffer = dev.create_buffer(&info, Some(gfx::as_u8_slice(&indices)))?;
118-
119-
// create imgui shader
120-
let mut pmfx : pmfx::Pmfx<gfx_platform::Device> = pmfx::Pmfx::create(&mut dev, 0);
121-
pmfx.load(&hotline_rs::get_data_path("shaders/imgui"))?;
122-
pmfx.create_render_pipeline(&dev, "default", swap_chain.get_backbuffer_pass())?;
123-
let fmt = swap_chain.get_backbuffer_pass().get_format_hash();
124-
let pso_pmfx = pmfx.get_render_pipeline_for_format("default", fmt)?;
125-
126-
// create pipeline manually
127-
let vsc_filepath = crate::get_data_path("shaders/imgui/vs_main.vsc");
128-
let psc_filepath = crate::get_data_path("shaders/imgui/ps_main.psc");
129-
130-
let vsc_data = std::fs::read(vsc_filepath)?;
131-
let psc_data = std::fs::read(psc_filepath)?;
132-
133-
let vs_info = gfx::ShaderInfo {
134-
shader_type: gfx::ShaderType::Vertex,
135-
compile_info: None
136-
};
137-
138-
let ps_info = gfx::ShaderInfo {
139-
shader_type: gfx::ShaderType::Fragment,
140-
compile_info: None
141-
};
142-
143-
let vs = dev.create_shader(&vs_info, &vsc_data)?;
144-
let fs = dev.create_shader(&ps_info, &psc_data)?;
145-
14662
// ..
14763
let mut ci = 0;
14864
while app.run() {

examples/play_video/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use hotline_rs::prelude::*;
2-
use hotline_rs::*;
32

43
fn main() -> Result<(), hotline_rs::Error> {
54
// app

examples/raytraced_triangle/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ use gfx::RaytracingInstanceInfo;
55
use gfx::RaytracingTLASInfo;
66
use hotline_rs::gfx::RaytracingTLAS;
77
use hotline_rs::gfx::Texture;
8-
use hotline_rs::gfx::Pipeline;
98
use hotline_rs::*;
109

1110
use gfx::CmdBuf;

examples/resource_tests/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use hotline_rs::{*, prelude::{Pipeline, Texture}};
1+
use hotline_rs::{*, prelude::{Texture}};
22

33
use os::{App, Window};
44
use gfx::{CmdBuf, Device, SwapChain, RenderPass};

examples/swap_chain/main.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use hotline_rs::*;
2-
use hotline_rs::prelude::*;
32
use hotline_rs::gfx::CmdBuf;
43
use hotline_rs::gfx::RenderPassInfo;
54
use hotline_rs::gfx::SwapChain;
@@ -9,7 +8,6 @@ use os::Window;
98

109
use gfx::Device;
1110

12-
use maths_rs::Vec3f;
1311
use maths_rs::vec::vec3f;
1412
use maths_rs::cos;
1513

plugins/ecs/src/lib.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,12 @@ impl BevyPlugin {
534534
}
535535

536536
fn spawn_main_camera(&mut self) {
537+
// despawn any existing so this is safe to call multiple times
538+
let mut q = self.world.query::<(Entity, &MainCamera)>();
539+
let existing: Vec<Entity> = q.iter(&self.world).map(|(e, _)| e).collect();
540+
for e in existing {
541+
self.world.despawn(e);
542+
}
537543
let (cam, vp, pos) = self.setup_camera();
538544
self.world.spawn((
539545
ViewProjectionMatrix(vp),
@@ -708,11 +714,7 @@ impl Plugin<gfx_platform::Device, os_platform::App> for BevyPlugin {
708714

709715
// run setup if requested, we did it here so hotline resources are inserted into World
710716
if self.run_setup {
711-
// only spawn if resetup() hasn't already spawned it (ui() runs before update())
712-
if self.world.query_filtered::<Entity, With<MainCamera>>().iter(&self.world).next().is_none() {
713-
self.spawn_main_camera();
714-
}
715-
717+
self.spawn_main_camera();
716718
self.setup_schedule.run(&mut self.world);
717719
self.run_setup = false;
718720
}

shaders/bindless.hlsl

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,4 @@ ps_output ps_main(ps_input input) {
6060

6161
output.colour = final;
6262
return output;
63-
}
64-
65-
RWTexture2D<float4> rwtex[10] : register(u0);
66-
67-
[numthreads(16, 16, 1)]
68-
void cs_main(uint3 did : SV_DispatchThreadID)
69-
{
70-
rwtex[7][did.xy] = float4(0.0, 0.0, 0.0, 1.0);
7163
}

shaders/bindless.pmfx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,5 @@
2323
}
2424
topology: "TriangleList"
2525
}
26-
compute_rw: {
27-
cs: "cs_main"
28-
}
2926
}
3027
}

0 commit comments

Comments
 (0)