pub enum Surface<T: SurfaceTypeTrait> {
Egl(EglSurface<T>),
Glx(GlxSurface<T>),
}Expand description
The GL surface that is used for rendering.
The GL surface is not thread safe, it can neither be Send nor Sync,
so it should be created on the thread it’ll be used to render.
ⓘ
fn test_send<T: Send>() {}
test_send::<glutin::surface::Surface<glutin::surface::WindowSurface>>();ⓘ
fn test_sync<T: Sync>() {}
test_sync::<glutin::surface::Surface<glutin::surface::WindowSurface>>();Variants§
Egl(EglSurface<T>)
Available on
egl_backend only.The EGL surface.
Glx(GlxSurface<T>)
Available on
glx_backend only.The GLX surface.
Trait Implementations§
source§impl<T: SurfaceTypeTrait> AsRawSurface for Surface<T>
impl<T: SurfaceTypeTrait> AsRawSurface for Surface<T>
source§fn raw_surface(&self) -> RawSurface
fn raw_surface(&self) -> RawSurface
Get the raw handle to the surface.
source§impl<T: SurfaceTypeTrait> GetGlDisplay for Surface<T>
impl<T: SurfaceTypeTrait> GetGlDisplay for Surface<T>
source§impl<T: SurfaceTypeTrait> GlSurface<T> for Surface<T>
impl<T: SurfaceTypeTrait> GlSurface<T> for Surface<T>
§type Context = PossiblyCurrentContext
type Context = PossiblyCurrentContext
The context to access surface data.
§type SurfaceType = T
type SurfaceType = T
The type of the surface.
source§fn buffer_age(&self) -> u32
fn buffer_age(&self) -> u32
The age of the back buffer of that surface. The
0 indicates that the
buffer is either a new one or we failed to get the information about
its age. In both cases you must redraw the entire buffer.source§fn is_single_buffered(&self) -> bool
fn is_single_buffered(&self) -> bool
Check whether the surface is single buffered.
source§fn swap_buffers(&self, context: &Self::Context) -> Result<()>
fn swap_buffers(&self, context: &Self::Context) -> Result<()>
Swaps the underlying back buffers when the surface is not single
buffered.
source§fn set_swap_interval(
&self,
context: &Self::Context,
interval: SwapInterval
) -> Result<()>
fn set_swap_interval( &self, context: &Self::Context, interval: SwapInterval ) -> Result<()>
Set swap interval for the surface. Read more
source§fn is_current(&self, context: &Self::Context) -> bool
fn is_current(&self, context: &Self::Context) -> bool
Check whether the surface is current on to the current thread.
source§fn is_current_draw(&self, context: &Self::Context) -> bool
fn is_current_draw(&self, context: &Self::Context) -> bool
Check whether the surface is the current draw surface to the current
thread.
source§fn is_current_read(&self, context: &Self::Context) -> bool
fn is_current_read(&self, context: &Self::Context) -> bool
Check whether the surface is the current read surface to the current
thread.
source§fn resize(&self, context: &Self::Context, width: NonZeroU32, height: NonZeroU32)where
Self::SurfaceType: ResizeableSurface,
fn resize(&self, context: &Self::Context, width: NonZeroU32, height: NonZeroU32)where Self::SurfaceType: ResizeableSurface,
Resize the surface to a new size. Read more
Auto Trait Implementations§
impl<T> RefUnwindSafe for Surface<T>where T: RefUnwindSafe,
impl<T> !Send for Surface<T>
impl<T> !Sync for Surface<T>
impl<T> Unpin for Surface<T>where T: Unpin,
impl<T> UnwindSafe for Surface<T>where T: UnwindSafe,
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