pub struct Shader<T> { /* private fields */ }
Expand description
This struct stores static properties of the shader between executions. This includes the output resolution.
Implementations§
source§impl Shader<DebayerHq>
impl Shader<DebayerHq>
pub fn new_with_facade<F: Facade>( facade: &F, out_dims: (u32, u32), ) -> Result<Self, Box<dyn Error>>
pub fn new_rg88_with_facade<F: Facade>( facade: &F, out_dims: (u32, u32), ) -> Result<Self, Box<dyn Error>>
sourcepub fn convert<F: Facade>(
&self,
facade: &F,
source_tex: Texture,
target: &mut impl Surface,
data: PixOrder,
color_matrix: Matrix3<f32>,
) -> Result<(), Box<dyn Error>>
pub fn convert<F: Facade>( &self, facade: &F, source_tex: Texture, target: &mut impl Surface, data: PixOrder, color_matrix: Matrix3<f32>, ) -> Result<(), Box<dyn Error>>
Debayers GL texture in R8 format source_tex
to GL texture in RGBA target_tex
.
Both must be of the width
/height
pixel dimensions.
PixOrder defines the subpixel order in source_tex
.
source§impl Shader<Passthrough>
impl Shader<Passthrough>
source§impl Shader<YuyvToRgba>
impl Shader<YuyvToRgba>
sourcepub fn convert<F: Facade>(
&self,
facade: &F,
source_tex: Texture,
target: &mut impl Surface,
space: ColorSpace,
gamma: Gamma,
) -> Result<(), Box<dyn Error>>
pub fn convert<F: Facade>( &self, facade: &F, source_tex: Texture, target: &mut impl Surface, space: ColorSpace, gamma: Gamma, ) -> Result<(), Box<dyn Error>>
Converts image in GL texture in YUYV format source_tex
by writing a RGBA image to GL surface target
.
TODO: the input texture should be an OpenGL texture, so that shader calls can be chained. The output is an OpenGL surface to allow rendering directly to the screen.
Auto Trait Implementations§
impl<T> !Freeze for Shader<T>
impl<T> !RefUnwindSafe for Shader<T>
impl<T> !Send for Shader<T>
impl<T> !Sync for Shader<T>
impl<T> Unpin for Shader<T>where
T: Unpin,
impl<T> !UnwindSafe for Shader<T>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.