1use glam::{Vec2, Vec4};
7use spirv_std::{image::Image2d, spirv, Sampler};
8
9#[spirv(vertex)]
14pub fn compositor_vertex(
15 #[spirv(vertex_index)] vertex_id: u32,
16 out_uv: &mut Vec2,
17 #[spirv(position)] out_pos: &mut Vec4,
18) {
19 let i = vertex_id as usize;
20 *out_uv = crate::math::UV_COORD_QUAD_CCW[i];
21 *out_pos = crate::math::CLIP_SPACE_COORD_QUAD_CCW[i];
22}
23
24#[spirv(fragment)]
29pub fn compositor_fragment(
30 #[spirv(descriptor_set = 0, binding = 0)] texture: &Image2d,
31 #[spirv(descriptor_set = 0, binding = 1)] sampler: &Sampler,
32 in_uv: Vec2,
33 frag_color: &mut Vec4,
34) {
35 *frag_color = texture.sample(*sampler, in_uv);
36}
37
38#[cfg(not(target_arch = "spirv"))]
39mod cpu;
40#[cfg(not(target_arch = "spirv"))]
41pub use cpu::*;