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> 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.