pub struct GlFrameBuffer { /* private fields */ }
Implementations§
Source§impl GlFrameBuffer
impl GlFrameBuffer
pub fn new( server: &GlGraphicsServer, depth_attachment: Option<Attachment>, color_attachments: Vec<Attachment>, ) -> Result<GlFrameBuffer, FrameworkError>
pub fn backbuffer(server: &GlGraphicsServer) -> GlFrameBuffer
Sourcepub fn id(&self) -> Option<<Context as HasContext>::Framebuffer>
pub fn id(&self) -> Option<<Context as HasContext>::Framebuffer>
None is possible only for back buffer.
Trait Implementations§
Source§impl Drop for GlFrameBuffer
impl Drop for GlFrameBuffer
Source§impl FrameBuffer for GlFrameBuffer
impl FrameBuffer for GlFrameBuffer
Source§fn color_attachments(&self) -> &[Attachment]
fn color_attachments(&self) -> &[Attachment]
Returns a list of color attachments.
Source§fn depth_attachment(&self) -> Option<&Attachment>
fn depth_attachment(&self) -> Option<&Attachment>
Returns an optional depth/stencil attachment.
Source§fn set_cubemap_face(&mut self, attachment_index: usize, face: CubeMapFace)
fn set_cubemap_face(&mut self, attachment_index: usize, face: CubeMapFace)
Sets an active face of a cube map (only for frame buffers that using cube maps for rendering).
Source§fn blit_to(
&self,
dest: &(dyn FrameBuffer + 'static),
src_x0: i32,
src_y0: i32,
src_x1: i32,
src_y1: i32,
dst_x0: i32,
dst_y0: i32,
dst_x1: i32,
dst_y1: i32,
copy_color: bool,
copy_depth: bool,
copy_stencil: bool,
)
fn blit_to( &self, dest: &(dyn FrameBuffer + 'static), src_x0: i32, src_y0: i32, src_x1: i32, src_y1: i32, dst_x0: i32, dst_y0: i32, dst_x1: i32, dst_y1: i32, copy_color: bool, copy_depth: bool, copy_stencil: bool, )
Performs data transfer from one frame buffer to another with scaling. It copies a region
defined by
src_x0
, src_y0
, src_x1
, src_y1
coordinates from the frame buffer and
“pastes” it to the other frame buffer into a region defined by dst_x0
, dst_y0
, dst_x1
,
dst_y1
coordinates. If the source rectangle does not match the destination, the image will
be interpolated using nearest interpolation. Read moreSource§fn clear(
&mut self,
viewport: Rect<i32>,
color: Option<Color>,
depth: Option<f32>,
stencil: Option<i32>,
)
fn clear( &mut self, viewport: Rect<i32>, color: Option<Color>, depth: Option<f32>, stencil: Option<i32>, )
Clears the frame buffer in the given viewport with the given set of optional values. This
method clears multiple attachments at once. What will be cleared defined by the provided
values. If
color
is not None
, then all the color attachments will be cleared with the
given color. The same applies to depth and stencil buffers.Source§fn draw(
&mut self,
geometry: &(dyn GeometryBuffer + 'static),
viewport: Rect<i32>,
program: &(dyn GpuProgram + 'static),
params: &DrawParameters,
resources: &[ResourceBindGroup<'_>],
element_range: ElementRange,
) -> Result<DrawCallStatistics, FrameworkError>
fn draw( &mut self, geometry: &(dyn GeometryBuffer + 'static), viewport: Rect<i32>, program: &(dyn GpuProgram + 'static), params: &DrawParameters, resources: &[ResourceBindGroup<'_>], element_range: ElementRange, ) -> Result<DrawCallStatistics, FrameworkError>
Draws the specified geometry buffer using the given GPU program and a set of resources. This
method the main method to draw anything. Read more
Source§fn draw_instances(
&mut self,
count: usize,
geometry: &(dyn GeometryBuffer + 'static),
viewport: Rect<i32>,
program: &(dyn GpuProgram + 'static),
params: &DrawParameters,
resources: &[ResourceBindGroup<'_>],
) -> DrawCallStatistics
fn draw_instances( &mut self, count: usize, geometry: &(dyn GeometryBuffer + 'static), viewport: Rect<i32>, program: &(dyn GpuProgram + 'static), params: &DrawParameters, resources: &[ResourceBindGroup<'_>], ) -> DrawCallStatistics
Almost the same as
Self::draw
, but draws multiple instances at once. The caller must
supply all the required data per each instance, it could be done in different ways. The data
could be supplied in vertex attributes, uniform buffers, textures, etc.Auto Trait Implementations§
impl Freeze for GlFrameBuffer
impl !RefUnwindSafe for GlFrameBuffer
impl !Send for GlFrameBuffer
impl !Sync for GlFrameBuffer
impl Unpin for GlFrameBuffer
impl !UnwindSafe for GlFrameBuffer
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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
.Source§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
.Source§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.Source§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.Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts self reference as a reference to
Any
. Could be used to downcast a trait object
to a particular type.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts self reference as a reference to
Any
. Could be used to downcast a trait object
to a particular type.fn into_any(self: Box<T>) -> Box<dyn Any>
Source§impl<T> FieldValue for Twhere
T: 'static,
impl<T> FieldValue for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.