pub trait PossiblyCurrentGlContext: Sealed {
    type NotCurrentContext: NotCurrentGlContext;
    type Surface<T: SurfaceTypeTrait>: GlSurface<T>;

    // Required methods
    fn is_current(&self) -> bool;
    fn make_not_current(self) -> Result<Self::NotCurrentContext>;
    fn make_current<T: SurfaceTypeTrait>(
        &self,
        surface: &Self::Surface<T>
    ) -> Result<()>;
    fn make_current_draw_read<T: SurfaceTypeTrait>(
        &self,
        surface_draw: &Self::Surface<T>,
        surface_read: &Self::Surface<T>
    ) -> Result<()>;
}
Expand description

A trait to group common context operations.

Required Associated Types§

source

type NotCurrentContext: NotCurrentGlContext

The not current context type.

source

type Surface<T: SurfaceTypeTrait>: GlSurface<T>

The surface supported by the context.

Required Methods§

source

fn is_current(&self) -> bool

Returns true if this context is the current one in this thread.

source

fn make_not_current(self) -> Result<Self::NotCurrentContext>

Make the context not current to the current thread and returns a Self::NotCurrentContext to indicate that the context is a not current to allow sending it to the different thread.

§Platform specific
  • macOS: this will block if your main thread is blocked.
source

fn make_current<T: SurfaceTypeTrait>( &self, surface: &Self::Surface<T> ) -> Result<()>

Make Self::Surface current on the calling thread.

§Platform specific
  • macOS: this will block if your main thread is blocked.
source

fn make_current_draw_read<T: SurfaceTypeTrait>( &self, surface_draw: &Self::Surface<T>, surface_read: &Self::Surface<T> ) -> Result<()>

The same as Self::make_current but provides a way to set read and draw surfaces explicitly.

§Api-specific:
  • CGL/WGL: not supported.

Object Safety§

This trait is not object safe.

Implementors§