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: PixelFormatRequirementsThe pixel format requirements
Implementations§
source§impl<'a, T: ContextCurrentState> ContextBuilder<'a, T>
impl<'a, T: ContextCurrentState> ContextBuilder<'a, T>
sourcepub fn build_headless<TE>(
self,
el: &EventLoopWindowTarget<TE>,
size: PhysicalSize<u32>
) -> Result<Context<NotCurrent>, CreationError>
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
Contextcould not be created. This generally happens because the underlying platform doesn’t support a requested feature.
source§impl<'a, T: ContextCurrentState> ContextBuilder<'a, T>
impl<'a, T: ContextCurrentState> ContextBuilder<'a, T>
sourcepub fn build_windowed<TE>(
self,
wb: WindowBuilder,
el: &EventLoopWindowTarget<TE>
) -> Result<WindowedContext<NotCurrent>, CreationError>
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
Contextcould not be created. This generally happens because the underlying platform doesn’t support a requested feature.
source§impl<'a> ContextBuilder<'a, NotCurrent>
impl<'a> ContextBuilder<'a, NotCurrent>
source§impl<'a, T: ContextCurrentState> ContextBuilder<'a, T>
impl<'a, T: ContextCurrentState> ContextBuilder<'a, T>
sourcepub fn with_gl(self, request: GlRequest) -> Self
pub fn with_gl(self, request: GlRequest) -> Self
Sets how the backend should choose the OpenGL API and version.
sourcepub fn with_gl_profile(self, profile: GlProfile) -> Self
pub fn with_gl_profile(self, profile: GlProfile) -> Self
Sets the desired OpenGL Context profile.
sourcepub fn with_gl_debug_flag(self, flag: bool) -> Self
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.
sourcepub fn with_gl_robustness(self, robustness: Robustness) -> Self
pub fn with_gl_robustness(self, robustness: Robustness) -> Self
Sets the robustness of the OpenGL Context. See the docs of
Robustness.
sourcepub fn with_vsync(self, vsync: bool) -> Self
pub fn with_vsync(self, vsync: bool) -> Self
Requests that the window has vsync enabled.
By default, vsync is not enabled.
Share the display lists with the given Context.
sourcepub fn with_multisampling(self, samples: u16) -> Self
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.
sourcepub fn with_depth_buffer(self, bits: u8) -> Self
pub fn with_depth_buffer(self, bits: u8) -> Self
Sets the number of bits in the depth buffer.
sourcepub fn with_stencil_buffer(self, bits: u8) -> Self
pub fn with_stencil_buffer(self, bits: u8) -> Self
Sets the number of bits in the stencil buffer.
sourcepub fn with_pixel_format(self, color_bits: u8, alpha_bits: u8) -> Self
pub fn with_pixel_format(self, color_bits: u8, alpha_bits: u8) -> Self
Sets the number of bits in the color buffer.
sourcepub fn with_stereoscopy(self) -> Self
pub fn with_stereoscopy(self) -> Self
Request the backend to be stereoscopic.
sourcepub fn with_srgb(self, srgb_enabled: bool) -> Self
pub fn with_srgb(self, srgb_enabled: bool) -> Self
Sets whether sRGB should be enabled on the window.
The default value is true.
sourcepub fn with_double_buffer(self, double_buffer: Option<bool>) -> Self
pub fn with_double_buffer(self, double_buffer: Option<bool>) -> Self
sourcepub fn with_hardware_acceleration(self, acceleration: Option<bool>) -> Self
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>
impl<'a, T: Clone + ContextCurrentState> Clone for ContextBuilder<'a, T>
source§fn clone(&self) -> ContextBuilder<'a, T>
fn clone(&self) -> ContextBuilder<'a, T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more