[][src]Struct web_glitz::image::renderbuffer::Renderbuffer

pub struct Renderbuffer<F> { /* fields omitted */ }

Stores a single 2-dimensional image, optimized for use as a [RenderTarget] attachment.

Unlike a [Texture2D], which can also hold a single 2-dimensional image, a Renderbuffer cannot be sampled. However, a Renderbuffer is optimized for use as a render target attachment, whereas a [Texture2D] may not be. A Renderbuffer is therefor the best choice for a [RenderTarget] attachment that never needs to be sampled.

See RenderingContext::create_renderbuffer and [RenderingContext::create_multisample_renderbuffer] for details on how a Renderbuffer is created for single-sample and multisample image data respectively.

Example

The following example creates a Renderbuffer and uses it as the color attachment in a render pass, which clears a central square to blue pixels:

use web_glitz::image::Region2D;
use web_glitz::image::format::RGB8;
use web_glitz::image::renderbuffer::RenderbufferDescriptor;
use web_glitz::rendering::{LoadOp, RenderTargetDescriptor, StoreOp};

let mut renderbuffer = context.create_renderbuffer(&RenderbufferDescriptor {
    format: RGB8,
    width: 256,
    height: 256
});

let mut render_target = context.create_render_target(
    RenderTargetDescriptor::new()
        .attach_color_float(
            &mut renderbuffer,
            LoadOp::Load,
            StoreOp::Store
        )
);

let render_pass = render_target.create_render_pass(|framebuffer| {
    framebuffer.color.0.clear_command([0.0, 0.0, 1.0, 0.0], Region2D::Area((64, 64), 128, 128))
});

context.submit(render_pass);

Implementations

impl<F> Renderbuffer<F>[src]

pub fn width(&self) -> u32[src]

The width of this Renderbuffer.

pub fn height(&self) -> u32[src]

The height of this Renderbuffer.

impl<F> Renderbuffer<Multisample<F>> where
    F: Multisamplable
[src]

pub fn samples(&self) -> u8[src]

Returns the number of samples this Renderbuffer stores for its image data.

Trait Implementations

impl<F> AsAttachment for Renderbuffer<F> where
    F: RenderbufferFormat + 'static, 
[src]

type Format = F

The type of image storage format the image is stored in.

impl<F> AsMultisampleAttachment for Renderbuffer<Multisample<F>> where
    F: RenderbufferFormat + Multisamplable + 'static, 
[src]

type SampleFormat = F

The type of image storage format the image is stored in.

impl<F> AttachColorFloat for Renderbuffer<F> where
    F: RenderbufferFormat + FloatRenderable + 'static, 
[src]

impl<F> AttachColorInteger for Renderbuffer<F> where
    F: RenderbufferFormat + IntegerRenderable + 'static, 
[src]

impl<F> AttachColorUnsignedInteger for Renderbuffer<F> where
    F: RenderbufferFormat + UnsignedIntegerRenderable + 'static, 
[src]

impl<F> AttachDepth for Renderbuffer<F> where
    F: RenderbufferFormat + DepthRenderable + 'static, 
[src]

impl<F> AttachDepthStencil for Renderbuffer<F> where
    F: RenderbufferFormat + DepthStencilRenderable + 'static, 
[src]

impl<F> AttachMultisampleColorFloat for Renderbuffer<Multisample<F>> where
    F: RenderbufferFormat + Multisamplable + FloatRenderable + 'static, 
[src]

impl<F> AttachMultisampleDepth for Renderbuffer<Multisample<F>> where
    F: RenderbufferFormat + Multisamplable + DepthRenderable + 'static, 
[src]

impl<F> AttachMultisampleDepthStencil for Renderbuffer<Multisample<F>> where
    F: RenderbufferFormat + Multisamplable + DepthStencilRenderable + 'static, 
[src]

impl<F> AttachStencil for Renderbuffer<F> where
    F: RenderbufferFormat + StencilRenderable + 'static, 
[src]

impl<F> BlitSource for Renderbuffer<F> where
    F: RenderbufferFormat + 'static, 
[src]

type Format = F

The image storage format used by the source image.

impl<F> Hash for Renderbuffer<F>[src]

impl<F> PartialEq<Renderbuffer<F>> for Renderbuffer<F>[src]

impl<F> ResolveSource for Renderbuffer<Multisample<F>> where
    F: RenderbufferFormat + Multisamplable + 'static, 
[src]

type Format = F

The image storage format used by the source image.

Auto Trait Implementations

impl<F> !RefUnwindSafe for Renderbuffer<F>

impl<F> !Send for Renderbuffer<F>

impl<F> !Sync for Renderbuffer<F>

impl<F> Unpin for Renderbuffer<F> where
    F: Unpin

impl<F> !UnwindSafe for Renderbuffer<F>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<D, T> IntoBuffer<T> for D where
    D: Borrow<T> + 'static,
    T: Copy + 'static, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.