singe-npp 0.1.0-alpha.8

Safe Rust wrappers for NVIDIA Performance Primitives library (NPP).
Documentation
use crate::{
    context::StreamContext,
    error::Result,
    image::{
        geometry,
        view::{AC4, C1, C3, C4, ImageView, ImageViewMut},
    },
};

pub(super) use super::ImagePipeline;

#[path = "geometry_dispatch_traits.rs"]
mod traits;

#[macro_use]
#[path = "geometry_dispatch_macros.rs"]
mod macros;

pub(super) use traits::{
    RemapImage, ResizeSqrPixelAdvancedImage, ResizeSqrPixelImage, RotateImage, WarpAffineBackImage,
    WarpAffineImage, WarpAffineQuadImage, WarpPerspectiveBackImage, WarpPerspectiveImage,
    WarpPerspectiveQuadImage,
};

impl_geometry_for_layout!(
    u8,
    C1,
    geometry::rotate_u8_c1,
    geometry::resize_sqr_pixel_u8_c1,
    geometry::remap_u8_c1,
    geometry::warp_affine_u8_c1,
    geometry::warp_affine_back_u8_c1,
    geometry::warp_affine_quad_u8_c1,
    geometry::warp_perspective_u8_c1,
    geometry::warp_perspective_back_u8_c1,
    geometry::warp_perspective_quad_u8_c1
);
impl_geometry_for_layout!(
    u8,
    C3,
    geometry::rotate_u8_c3,
    geometry::resize_sqr_pixel_u8_c3,
    geometry::remap_u8_c3,
    geometry::warp_affine_u8_c3,
    geometry::warp_affine_back_u8_c3,
    geometry::warp_affine_quad_u8_c3,
    geometry::warp_perspective_u8_c3,
    geometry::warp_perspective_back_u8_c3,
    geometry::warp_perspective_quad_u8_c3
);
impl_geometry_for_layout!(
    u8,
    C4,
    geometry::rotate_u8_c4,
    geometry::resize_sqr_pixel_u8_c4,
    geometry::remap_u8_c4,
    geometry::warp_affine_u8_c4,
    geometry::warp_affine_back_u8_c4,
    geometry::warp_affine_quad_u8_c4,
    geometry::warp_perspective_u8_c4,
    geometry::warp_perspective_back_u8_c4,
    geometry::warp_perspective_quad_u8_c4
);
impl_geometry_for_layout!(
    u8,
    AC4,
    geometry::rotate_u8_ac4,
    geometry::resize_sqr_pixel_u8_ac4,
    geometry::remap_u8_ac4,
    geometry::warp_affine_u8_ac4,
    geometry::warp_affine_back_u8_ac4,
    geometry::warp_affine_quad_u8_ac4,
    geometry::warp_perspective_u8_ac4,
    geometry::warp_perspective_back_u8_ac4,
    geometry::warp_perspective_quad_u8_ac4
);
impl_geometry_for_layout!(
    u16,
    C1,
    geometry::rotate_u16_c1,
    geometry::resize_sqr_pixel_u16_c1,
    geometry::remap_u16_c1,
    geometry::warp_affine_u16_c1,
    geometry::warp_affine_back_u16_c1,
    geometry::warp_affine_quad_u16_c1,
    geometry::warp_perspective_u16_c1,
    geometry::warp_perspective_back_u16_c1,
    geometry::warp_perspective_quad_u16_c1
);
impl_geometry_for_layout!(
    u16,
    C3,
    geometry::rotate_u16_c3,
    geometry::resize_sqr_pixel_u16_c3,
    geometry::remap_u16_c3,
    geometry::warp_affine_u16_c3,
    geometry::warp_affine_back_u16_c3,
    geometry::warp_affine_quad_u16_c3,
    geometry::warp_perspective_u16_c3,
    geometry::warp_perspective_back_u16_c3,
    geometry::warp_perspective_quad_u16_c3
);
impl_geometry_for_layout!(
    u16,
    C4,
    geometry::rotate_u16_c4,
    geometry::resize_sqr_pixel_u16_c4,
    geometry::remap_u16_c4,
    geometry::warp_affine_u16_c4,
    geometry::warp_affine_back_u16_c4,
    geometry::warp_affine_quad_u16_c4,
    geometry::warp_perspective_u16_c4,
    geometry::warp_perspective_back_u16_c4,
    geometry::warp_perspective_quad_u16_c4
);
impl_geometry_for_layout!(
    u16,
    AC4,
    geometry::rotate_u16_ac4,
    geometry::resize_sqr_pixel_u16_ac4,
    geometry::remap_u16_ac4,
    geometry::warp_affine_u16_ac4,
    geometry::warp_affine_back_u16_ac4,
    geometry::warp_affine_quad_u16_ac4,
    geometry::warp_perspective_u16_ac4,
    geometry::warp_perspective_back_u16_ac4,
    geometry::warp_perspective_quad_u16_ac4
);
impl_resize_sqr_pixel_image!(i16, C3, geometry::resize_sqr_pixel_i16_c3);
impl_remap_image!(i16, f32, C3, geometry::remap_i16_c3);

#[path = "geometry_warp_dispatch_impls.rs"]
mod warp_impls;

#[path = "geometry_float_dispatch_impls.rs"]
mod float_impls;