librashader/librashader-capi/src/ctypes.rs

38 lines
1.3 KiB
Rust
Raw Normal View History

2022-12-05 14:48:57 +11:00
//! Binding types for the librashader C API.
2022-12-04 10:32:10 +11:00
use crate::error::LibrashaderError;
use librashader::presets::ShaderPreset;
use std::ptr::NonNull;
2022-12-04 10:32:10 +11:00
2023-01-14 10:10:09 +11:00
/// A handle to a shader preset object.
pub type libra_shader_preset_t = Option<NonNull<ShaderPreset>>;
2023-01-14 10:10:09 +11:00
/// A handle to a librashader error object.
2022-12-05 14:37:03 +11:00
pub type libra_error_t = Option<NonNull<LibrashaderError>>;
2022-12-04 10:32:10 +11:00
2023-01-14 10:10:09 +11:00
/// A handle to a OpenGL filter chain.
2022-12-05 14:37:03 +11:00
#[cfg(feature = "runtime-opengl")]
pub type libra_gl_filter_chain_t = Option<NonNull<librashader::runtime::gl::capi::FilterChainGL>>;
2022-12-04 10:56:57 +11:00
2023-01-14 10:10:09 +11:00
/// A handle to a Direct3D11 filter chain.
#[cfg(all(feature = "runtime-d3d11"))]
pub type libra_d3d11_filter_chain_t =
Option<NonNull<librashader::runtime::d3d11::capi::FilterChainD3D11>>;
2022-12-05 14:48:57 +11:00
2023-01-14 10:10:09 +11:00
/// A handle to a Vulkan filter chain.
2023-01-14 09:59:22 +11:00
#[cfg(feature = "runtime-vulkan")]
pub type libra_vk_filter_chain_t =
Option<NonNull<librashader::runtime::vk::capi::FilterChainVulkan>>;
2023-01-14 10:10:09 +11:00
/// Defines the output viewport for a rendered frame.
2022-12-04 10:56:57 +11:00
#[repr(C)]
pub struct libra_viewport_t {
2023-01-14 10:10:09 +11:00
/// The x offset in the viewport framebuffer to begin rendering from.
2022-12-04 10:56:57 +11:00
pub x: f32,
2023-01-14 10:10:09 +11:00
/// The y offset in the viewport framebuffer to begin rendering from.
2022-12-04 10:56:57 +11:00
pub y: f32,
2023-01-14 10:10:09 +11:00
/// The width of the viewport framebuffer.
2022-12-04 10:56:57 +11:00
pub width: u32,
2023-01-14 10:10:09 +11:00
/// The height of the viewport framebuffer.
2022-12-04 10:56:57 +11:00
pub height: u32,
}