Skip to main content

pxldraw/
buffer.rs

1//! Pixel buffer.
2
3#[cfg(feature = "alloc")]
4mod inner_alloc;
5
6mod impl_target;
7
8use core::marker::PhantomData;
9use pxlfmt::{formats::rgba::Rgba8888, pixel::Format};
10
11/// An in-memory buffer for reading and writing pixels.
12pub struct Framebuffer<T, F = Rgba8888>
13where
14    F: Format,
15{
16    inner: T,
17    _fmt: PhantomData<F>,
18}
19
20impl<T, F> AsRef<T> for Framebuffer<T, F>
21where
22    F: Format,
23{
24    fn as_ref(&self) -> &T {
25        &self.inner
26    }
27}
28
29impl<T, F> AsMut<T> for Framebuffer<T, F>
30where
31    F: Format,
32{
33    fn as_mut(&mut self) -> &mut T {
34        &mut self.inner
35    }
36}