[][src]Struct rg3d::ContextBuilder

pub struct ContextBuilder<'a, T> where
    T: ContextCurrentState
{ pub gl_attr: GlAttributes<&'a Context<T>>, pub pf_reqs: PixelFormatRequirements, }

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

impl<'a, T> ContextBuilder<'a, T> where
    T: ContextCurrentState
[src]

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

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.

impl<'a, T> ContextBuilder<'a, T> where
    T: ContextCurrentState
[src]

pub fn build_windowed<TE>(
    self,
    wb: WindowBuilder,
    el: &EventLoopWindowTarget<TE>
) -> Result<ContextWrapper<NotCurrent, Window>, CreationError>
[src]

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.

impl<'a> ContextBuilder<'a, NotCurrent>[src]

pub fn new() -> ContextBuilder<'a, NotCurrent>[src]

Initializes a new ContextBuilder with default values.

impl<'a, T> ContextBuilder<'a, T> where
    T: ContextCurrentState
[src]

pub fn with_gl(self, request: GlRequest) -> ContextBuilder<'a, T>[src]

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

pub fn with_gl_profile(self, profile: GlProfile) -> ContextBuilder<'a, T>[src]

Sets the desired OpenGL Context profile.

pub fn with_gl_debug_flag(self, flag: bool) -> ContextBuilder<'a, T>[src]

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.

pub fn with_gl_robustness(self, robustness: Robustness) -> ContextBuilder<'a, T>[src]

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

pub fn with_vsync(self, vsync: bool) -> ContextBuilder<'a, T>[src]

Requests that the window has vsync enabled.

By default, vsync is not enabled.

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

Share the display lists with the given Context.

pub fn with_multisampling(self, samples: u16) -> ContextBuilder<'a, T>[src]

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.

pub fn with_depth_buffer(self, bits: u8) -> ContextBuilder<'a, T>[src]

Sets the number of bits in the depth buffer.

pub fn with_stencil_buffer(self, bits: u8) -> ContextBuilder<'a, T>[src]

Sets the number of bits in the stencil buffer.

pub fn with_pixel_format(
    self,
    color_bits: u8,
    alpha_bits: u8
) -> ContextBuilder<'a, T>
[src]

Sets the number of bits in the color buffer.

pub fn with_stereoscopy(self) -> ContextBuilder<'a, T>[src]

Request the backend to be stereoscopic.

pub fn with_srgb(self, srgb_enabled: bool) -> ContextBuilder<'a, T>[src]

Sets whether sRGB should be enabled on the window.

The default value is true.

pub fn with_double_buffer(
    self,
    double_buffer: Option<bool>
) -> ContextBuilder<'a, T>
[src]

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

pub fn with_hardware_acceleration(
    self,
    acceleration: Option<bool>
) -> ContextBuilder<'a, T>
[src]

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

impl<'a, T> Clone for ContextBuilder<'a, T> where
    T: ContextCurrentState + Clone
[src]

impl<'a, T> Debug for ContextBuilder<'a, T> where
    T: ContextCurrentState + Debug
[src]

impl<'a, T> HeadlessContextExt for ContextBuilder<'a, T> where
    T: ContextCurrentState
[src]

impl<'a, T> RawContextExt for ContextBuilder<'a, T> where
    T: ContextCurrentState
[src]

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> SetParameter for T

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,