Struct luminance::framebuffer::Framebuffer
source · [−]pub struct Framebuffer<B, D, CS, DS> where
B: ?Sized + FramebufferBackend<D>,
D: Dimensionable,
CS: ColorSlot<B, D>,
DS: DepthStencilSlot<B, D>, { /* private fields */ }
Expand description
Typed framebuffers.
Parametricity
B
is the backend type. It must implement backend::framebuffer::Framebuffer.D
is the dimension type. It must implementDimensionable
.CS
is the color slot type. It must implementColorSlot
.DS
is the depth slot type. It must implementDepthStencilSlot
.
Implementations
sourceimpl<B, D, CS, DS> Framebuffer<B, D, CS, DS> where
B: ?Sized + FramebufferBackend<D>,
D: Dimensionable,
CS: ColorSlot<B, D>,
DS: DepthStencilSlot<B, D>,
impl<B, D, CS, DS> Framebuffer<B, D, CS, DS> where
B: ?Sized + FramebufferBackend<D>,
D: Dimensionable,
CS: ColorSlot<B, D>,
DS: DepthStencilSlot<B, D>,
sourcepub fn new<C>(
ctx: &mut C,
size: D::Size,
mipmaps: usize,
sampler: Sampler
) -> Result<Self, FramebufferError> where
C: GraphicsContext<Backend = B>,
pub fn new<C>(
ctx: &mut C,
size: D::Size,
mipmaps: usize,
sampler: Sampler
) -> Result<Self, FramebufferError> where
C: GraphicsContext<Backend = B>,
Create a new Framebuffer
.
The mipmaps
argument allows to pass the number of extra precision layers the texture will
be created with. A precision layer contains the same image as the base layer but in a lower
resolution. Currently, the way the resolution is computed depends on the backend, but it is
safe to assume that it’s logarithmic in base 2 — i.e. at each layer depth, the resolution
is divided by 2 on each axis.
Errors
It is possible that the Framebuffer
cannot be created. The FramebufferError
provides
the reason why.
Notes
You might be interested in the GraphicsContext::new_framebuffer
function instead, which
is the exact same function, but benefits from more type inference (based on &mut C
).
sourcepub fn color_slot(&mut self) -> &mut CS::ColorTextures
pub fn color_slot(&mut self) -> &mut CS::ColorTextures
Access the carried color slot’s texture(s).
sourcepub fn depth_stencil_slot(&mut self) -> &mut DS::DepthStencilTexture
pub fn depth_stencil_slot(&mut self) -> &mut DS::DepthStencilTexture
Access the carried depth/stencil slot’s texture.
sourcepub fn into_slots(self) -> (CS::ColorTextures, DS::DepthStencilTexture)
pub fn into_slots(self) -> (CS::ColorTextures, DS::DepthStencilTexture)
Consume this framebuffer and return the carried slots’ texture(s).
sourcepub fn into_color_slot(self) -> CS::ColorTextures
pub fn into_color_slot(self) -> CS::ColorTextures
Consume this framebuffer and return the carried ColorSlot::ColorTextures
.
sourcepub fn into_depth_stencil_slot(self) -> DS::DepthStencilTexture
pub fn into_depth_stencil_slot(self) -> DS::DepthStencilTexture
Consume this framebuffer and return the carried DepthStencilSlot::DepthStencilTexture
.
sourceimpl<B> Framebuffer<B, Dim2, (), ()> where
B: ?Sized + FramebufferBackend<Dim2> + FramebufferBackBuffer,
impl<B> Framebuffer<B, Dim2, (), ()> where
B: ?Sized + FramebufferBackend<Dim2> + FramebufferBackBuffer,
sourcepub fn back_buffer<C>(
ctx: &mut C,
size: <Dim2 as Dimensionable>::Size
) -> Result<Self, FramebufferError> where
C: GraphicsContext<Backend = B>,
pub fn back_buffer<C>(
ctx: &mut C,
size: <Dim2 as Dimensionable>::Size
) -> Result<Self, FramebufferError> where
C: GraphicsContext<Backend = B>,
Get the back buffer from the input context and the required resolution.
Auto Trait Implementations
impl<B: ?Sized, D, CS, DS> RefUnwindSafe for Framebuffer<B, D, CS, DS> where
<CS as ColorSlot<B, D>>::ColorTextures: RefUnwindSafe,
<DS as DepthStencilSlot<B, D>>::DepthStencilTexture: RefUnwindSafe,
<B as Framebuffer<D>>::FramebufferRepr: RefUnwindSafe,
impl<B: ?Sized, D, CS, DS> Send for Framebuffer<B, D, CS, DS> where
<CS as ColorSlot<B, D>>::ColorTextures: Send,
<DS as DepthStencilSlot<B, D>>::DepthStencilTexture: Send,
<B as Framebuffer<D>>::FramebufferRepr: Send,
impl<B: ?Sized, D, CS, DS> Sync for Framebuffer<B, D, CS, DS> where
<CS as ColorSlot<B, D>>::ColorTextures: Sync,
<DS as DepthStencilSlot<B, D>>::DepthStencilTexture: Sync,
<B as Framebuffer<D>>::FramebufferRepr: Sync,
impl<B: ?Sized, D, CS, DS> Unpin for Framebuffer<B, D, CS, DS> where
<CS as ColorSlot<B, D>>::ColorTextures: Unpin,
<DS as DepthStencilSlot<B, D>>::DepthStencilTexture: Unpin,
<B as Framebuffer<D>>::FramebufferRepr: Unpin,
impl<B: ?Sized, D, CS, DS> UnwindSafe for Framebuffer<B, D, CS, DS> where
<CS as ColorSlot<B, D>>::ColorTextures: UnwindSafe,
<DS as DepthStencilSlot<B, D>>::DepthStencilTexture: UnwindSafe,
<B as Framebuffer<D>>::FramebufferRepr: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more