pub enum Context<Def, Alt>where
    Def: DeviceInterface,
    Alt: DeviceInterface,{
    Default(Def::Context),
    Alternate(Alt::Context),
}
Expand description

Represents an OpenGL rendering context.

A context allows you to issue rendering commands to a surface. When initially created, a context has no attached surface, so rendering commands will fail or be ignored. Typically, you attach a surface to the context before rendering.

Contexts take ownership of the surfaces attached to them. In order to mutate a surface in any way other than rendering to it (e.g. presenting it to a window, which causes a buffer swap), it must first be detached from its context. Each surface is associated with a single context upon creation and may not be rendered to from any other context. However, you can wrap a surface in a surface texture, which allows the surface to be read from another context.

OpenGL objects may not be shared across contexts directly, but surface textures effectively allow for sharing of texture data. Contexts are local to a single thread and device.

A context must be explicitly destroyed with destroy_context(), or a panic will occur.

Variants§

§

Default(Def::Context)

The default rendering context type.

§

Alternate(Alt::Context)

The alternate rendering context type.

Auto Trait Implementations§

§

impl<Def, Alt> RefUnwindSafe for Context<Def, Alt>where <Alt as Device>::Context: RefUnwindSafe, <Def as Device>::Context: RefUnwindSafe,

§

impl<Def, Alt> Send for Context<Def, Alt>where <Alt as Device>::Context: Send, <Def as Device>::Context: Send,

§

impl<Def, Alt> Sync for Context<Def, Alt>where <Alt as Device>::Context: Sync, <Def as Device>::Context: Sync,

§

impl<Def, Alt> Unpin for Context<Def, Alt>where <Alt as Device>::Context: Unpin, <Def as Device>::Context: Unpin,

§

impl<Def, Alt> UnwindSafe for Context<Def, Alt>where <Alt as Device>::Context: UnwindSafe, <Def as Device>::Context: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.