librashader/librashader-runtime/src/quad.rs

38 lines
994 B
Rust
Raw Normal View History

2024-02-22 16:41:29 +11:00
use bytemuck::{Pod, Zeroable};
/// Different type of quad to render to depending on pass type
pub enum QuadType {
/// Offscreen, intermediate passes.
Offscreen,
/// Final pass to render target.
2023-02-06 08:17:23 +11:00
Final,
}
/// Identity MVP for use in intermediate passes.
#[rustfmt::skip]
pub static IDENTITY_MVP: &[f32; 16] = &[
1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0,
];
/// Default MVP for use when rendering to the render target.
#[rustfmt::skip]
pub static DEFAULT_MVP: &[f32; 16] = &[
2f32, 0.0, 0.0, 0.0,
0.0, 2.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0,
-1.0, -1.0, 0.0, 1.0,
];
2024-02-22 16:41:29 +11:00
/// The vertex inputs to a slang shader
///
/// See [IO interface variables](https://github.com/libretro/slang-shaders?tab=readme-ov-file#io-interface-variables)
#[repr(C)]
#[derive(Debug, Copy, Clone, Default, Zeroable, Pod)]
pub struct VertexInput {
pub position: [f32; 4], // vec4 position
pub texcoord: [f32; 2], // vec2 texcoord;
}