Struct glutin::ContextBuilder

source ·
pub struct ContextBuilder<'a, T: ContextCurrentState> {
    pub gl_attr: GlAttributes<&'a Context<T>>,
    pub pf_reqs: PixelFormatRequirements,
}
Expand description

An object that allows you to build Contexts, RawContext<T>s and WindowedContext<T>s.

One notable limitation of the Wayland backend when it comes to shared Contexts is that both contexts must use the same events loop.

Fields§

§gl_attr: GlAttributes<&'a Context<T>>

The attributes to use to create the context.

§pf_reqs: PixelFormatRequirements

The pixel format requirements

Implementations§

source§

impl<'a, T: ContextCurrentState> ContextBuilder<'a, T>

source

pub fn build_headless<TE>( self, el: &EventLoopWindowTarget<TE>, size: PhysicalSize<u32> ) -> Result<Context<NotCurrent>, CreationError>

Builds the given GL context.

When on a unix operating system, prefer build_surfaceless. If both build_surfaceless and build_headless fail, try using a hidden window, or build_osmesa. Please note that if you choose to use a hidden window, you must still handle the events it generates on the events loop.

Errors can occur in two scenarios:

  • If the window could not be created (via permission denied, incompatible system, out of memory, etc.). This should be very rare.
  • If the OpenGL Context could not be created. This generally happens because the underlying platform doesn’t support a requested feature.
source§

impl<'a, T: ContextCurrentState> ContextBuilder<'a, T>

source

pub fn build_windowed<TE>( self, wb: WindowBuilder, el: &EventLoopWindowTarget<TE> ) -> Result<WindowedContext<NotCurrent>, CreationError>

Builds the given window along with the associated GL context, returning the pair as a WindowedContext<T>.

Errors can occur in two scenarios:

  • If the window could not be created (via permission denied, incompatible system, out of memory, etc.). This should be very rare.
  • If the OpenGL Context could not be created. This generally happens because the underlying platform doesn’t support a requested feature.
source§

impl<'a> ContextBuilder<'a, NotCurrent>

source

pub fn new() -> Self

Initializes a new ContextBuilder with default values.

source§

impl<'a, T: ContextCurrentState> ContextBuilder<'a, T>

source

pub fn with_gl(self, request: GlRequest) -> Self

Sets how the backend should choose the OpenGL API and version.

source

pub fn with_gl_profile(self, profile: GlProfile) -> Self

Sets the desired OpenGL Context profile.

source

pub fn with_gl_debug_flag(self, flag: bool) -> Self

Sets the debug flag for the OpenGL Context.

The default value for this flag is cfg!(debug_assertions), which means that it’s enabled when you run cargo build and disabled when you run cargo build --release.

source

pub fn with_gl_robustness(self, robustness: Robustness) -> Self

Sets the robustness of the OpenGL Context. See the docs of Robustness.

source

pub fn with_vsync(self, vsync: bool) -> Self

Requests that the window has vsync enabled.

By default, vsync is not enabled.

source

pub fn with_shared_lists<T2: ContextCurrentState>( self, other: &'a Context<T2> ) -> ContextBuilder<'a, T2>

Share the display lists with the given Context.

source

pub fn with_multisampling(self, samples: u16) -> Self

Sets the multisampling level to request. A value of 0 indicates that multisampling must not be enabled.

Panic

Will panic if samples is not a power of two.

source

pub fn with_depth_buffer(self, bits: u8) -> Self

Sets the number of bits in the depth buffer.

source

pub fn with_stencil_buffer(self, bits: u8) -> Self

Sets the number of bits in the stencil buffer.

source

pub fn with_pixel_format(self, color_bits: u8, alpha_bits: u8) -> Self

Sets the number of bits in the color buffer.

source

pub fn with_stereoscopy(self) -> Self

Request the backend to be stereoscopic.

source

pub fn with_srgb(self, srgb_enabled: bool) -> Self

Sets whether sRGB should be enabled on the window.

The default value is true.

source

pub fn with_double_buffer(self, double_buffer: Option<bool>) -> Self

Sets whether double buffering should be enabled.

The default value is None.

Platform-specific

This option will be taken into account on the following platforms:

  • MacOS
  • Unix operating systems using GLX with X
  • Windows using WGL
source

pub fn with_hardware_acceleration(self, acceleration: Option<bool>) -> Self

Sets whether hardware acceleration is required.

The default value is Some(true)

Platform-specific

This option will be taken into account on the following platforms:

  • MacOS
  • Unix operating systems using EGL with either X or Wayland
  • Windows using EGL or WGL
  • Android using EGL

Trait Implementations§

source§

impl<'a, T: Clone + ContextCurrentState> Clone for ContextBuilder<'a, T>

source§

fn clone(&self) -> ContextBuilder<'a, T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a, T: Debug + ContextCurrentState> Debug for ContextBuilder<'a, T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, T: ContextCurrentState> HeadlessContextExt for ContextBuilder<'a, T>

source§

fn build_osmesa( self, size: PhysicalSize<u32> ) -> Result<Context<NotCurrent>, CreationError>where Self: Sized,

Builds an OsMesa context. Read more
source§

fn build_surfaceless<TE>( self, el: &EventLoopWindowTarget<TE> ) -> Result<Context<NotCurrent>, CreationError>where Self: Sized,

Builds an EGL-surfaceless context. Read more
source§

impl<'a, T: ContextCurrentState> RawContextExt for ContextBuilder<'a, T>

source§

unsafe fn build_raw_wayland_context( self, display_ptr: *const wl_display, surface: *mut c_void, width: u32, height: u32 ) -> Result<RawContext<NotCurrent>, CreationError>where Self: Sized,

Creates a raw context on the provided surface. Read more
source§

unsafe fn build_raw_x11_context( self, xconn: Arc<XConnection>, xwin: c_ulong ) -> Result<RawContext<NotCurrent>, CreationError>where Self: Sized,

Creates a raw context on the provided window. Read more

Auto Trait Implementations§

§

impl<'a, T> !RefUnwindSafe for ContextBuilder<'a, T>

§

impl<'a, T> Send for ContextBuilder<'a, T>where T: Sync,

§

impl<'a, T> Sync for ContextBuilder<'a, T>where T: Sync,

§

impl<'a, T> Unpin for ContextBuilder<'a, T>

§

impl<'a, T> !UnwindSafe for ContextBuilder<'a, T>

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> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.