#[doc(alias = "webgl")]
pub mod opengl {
use crate::{camera::camera_impl, Mat4};
#[inline]
#[must_use]
pub fn perspective(vertical_fov: f32, aspect_ratio: f32, near: f32, far: f32) -> Mat4 {
camera_impl::perspective::<true, false, false>(vertical_fov, aspect_ratio, near, far)
}
#[inline]
#[must_use]
pub fn orthographic(left: f32, right: f32, bottom: f32, top: f32, near: f32, far: f32) -> Mat4 {
camera_impl::orthographic::<true, false, false>(left, right, bottom, top, near, far)
}
#[inline]
#[must_use]
pub fn frustum(left: f32, right: f32, bottom: f32, top: f32, near: f32, far: f32) -> Mat4 {
camera_impl::frustum::<true, false, false>(left, right, bottom, top, near, far)
}
}
pub mod vulkan {
use crate::{camera::camera_impl, Mat4};
#[inline]
#[must_use]
pub fn perspective(vertical_fov: f32, aspect_ratio: f32, near: f32, far: f32) -> Mat4 {
camera_impl::perspective::<true, true, true>(vertical_fov, aspect_ratio, near, far)
}
#[inline]
#[must_use]
pub fn perspective_infinite(vertical_fov: f32, aspect_ratio: f32, near: f32) -> Mat4 {
camera_impl::perspective_infinite::<true, true, true>(vertical_fov, aspect_ratio, near)
}
#[inline]
#[must_use]
pub fn perspective_infinite_reverse(vertical_fov: f32, aspect_ratio: f32, near: f32) -> Mat4 {
camera_impl::perspective_infinite_reverse::<true, true>(vertical_fov, aspect_ratio, near)
}
#[inline]
#[must_use]
pub fn orthographic(left: f32, right: f32, bottom: f32, top: f32, near: f32, far: f32) -> Mat4 {
camera_impl::orthographic::<true, true, true>(left, right, bottom, top, near, far)
}
#[inline]
#[must_use]
pub fn frustum(left: f32, right: f32, bottom: f32, top: f32, near: f32, far: f32) -> Mat4 {
camera_impl::frustum::<true, true, true>(left, right, bottom, top, near, far)
}
}
#[doc(alias = "webgpu")]
pub mod directx {
use crate::{camera::camera_impl, Mat4};
#[inline]
#[must_use]
pub fn perspective(vertical_fov: f32, aspect_ratio: f32, near: f32, far: f32) -> Mat4 {
camera_impl::perspective::<true, true, false>(vertical_fov, aspect_ratio, near, far)
}
#[inline]
#[must_use]
pub fn perspective_infinite(vertical_fov: f32, aspect_ratio: f32, near: f32) -> Mat4 {
camera_impl::perspective_infinite::<true, true, false>(vertical_fov, aspect_ratio, near)
}
#[inline]
#[must_use]
pub fn perspective_infinite_reverse(vertical_fov: f32, aspect_ratio: f32, near: f32) -> Mat4 {
camera_impl::perspective_infinite_reverse::<true, false>(vertical_fov, aspect_ratio, near)
}
#[inline]
#[must_use]
pub fn orthographic(left: f32, right: f32, bottom: f32, top: f32, near: f32, far: f32) -> Mat4 {
camera_impl::orthographic::<true, true, false>(left, right, bottom, top, near, far)
}
#[inline]
#[must_use]
pub fn frustum(left: f32, right: f32, bottom: f32, top: f32, near: f32, far: f32) -> Mat4 {
camera_impl::frustum::<true, true, false>(left, right, bottom, top, near, far)
}
}