pub struct Headless { /* private fields */ }
Expand description

A headless glutin context.

Implementations§

source§

impl Headless

source

pub fn new<T: ContextCurrentState>( context: Context<T> ) -> Result<Self, IncompatibleOpenGl>

Create a new glium Headless context.

Performs a compatibility check to make sure that all core elements of glium are supported by the implementation.

source

pub unsafe fn unchecked<T: ContextCurrentState>( context: Context<T> ) -> Result<Self, IncompatibleOpenGl>

Create a new glium Headless context.

This function does the same as build_glium, except that the resulting context will assume that the current OpenGL context will never change.

source

pub fn with_debug<T: ContextCurrentState>( context: Context<T>, debug: DebugCallbackBehavior ) -> Result<Self, IncompatibleOpenGl>

The same as the new constructor, but allows for specifying debug callback behaviour.

source

pub unsafe fn unchecked_with_debug<T: ContextCurrentState>( context: Context<T>, debug: DebugCallbackBehavior ) -> Result<Self, IncompatibleOpenGl>

The same as the unchecked constructor, but allows for specifying debug callback behaviour.

source

pub fn draw(&self) -> Frame

Start drawing on the backbuffer.

This function returns a Frame, which can be used to draw on it. When the Frame is destroyed, the buffers are swapped.

Note that destroying a Frame is immediate, even if vsync is enabled.

If the framebuffer dimensions have changed since the last call to draw, the inner glutin context will be resized accordingly before returning the Frame.

Methods from Deref<Target = Context>§

source

pub fn get_framebuffer_dimensions(&self) -> (u32, u32)

Calls get_framebuffer_dimensions on the backend object stored by this context.

source

pub unsafe fn rebuild<B>( &self, new_backend: B ) -> Result<(), IncompatibleOpenGl>where B: Backend + 'static,

Changes the OpenGL context associated with this context.

The new context must have lists shared with the old one.

source

pub fn swap_buffers(&self) -> Result<(), SwapBuffersError>

Swaps the buffers in the backend.

source

pub fn get_version(&self) -> &Version

👎Deprecated: use get_opengl_version instead.

Returns the OpenGL version

source

pub fn get_opengl_version(&self) -> &Version

Returns the OpenGL version detected by this context.

source

pub fn get_supported_glsl_version(&self) -> Version

Returns the GLSL version guaranteed to be supported.

source

pub fn is_glsl_version_supported(&self, version: &Version) -> bool

Returns true if the given GLSL version is supported.

source

pub fn get_opengl_version_string(&self) -> &str

Returns a string containing this GL version or release number used by this context.

Vendor-specific information may follow the version number.

source

pub fn get_opengl_vendor_string(&self) -> &str

Returns a string containing the company responsible for this GL implementation.

source

pub fn get_opengl_renderer_string(&self) -> &str

Returns a string containing the name of the GL renderer used by this context.

This name is typically specific to a particular configuration of a hardware platform.

source

pub fn is_debug(&self) -> bool

Returns true if the context is in debug mode.

Debug mode may provide additional error and performance issue reporting functionality.

source

pub fn is_forward_compatible(&self) -> bool

Returns true if the context is in “forward-compatible” mode.

Forward-compatible mode means that no deprecated functionality will be supported.

source

pub fn get_opengl_profile(&self) -> Option<Profile>

Returns this context’s OpenGL profile if available.

The context profile is available from OpenGL 3.2 onwards. Returns None if not supported.

source

pub fn is_robust(&self) -> bool

Returns true if out-of-bound buffer access from the GPU side (inside a program) cannot result in a crash.

You should take extra care if is_robust returns false.

source

pub fn is_context_loss_possible(&self) -> bool

Returns true if a context loss is possible.

source

pub fn is_context_lost(&self) -> bool

Returns true if the context has been lost and needs to be recreated.

Implementation

If it has been determined that the context has been lost before, then the function immediately returns true. Otherwise, calls glGetGraphicsResetStatus. If this function is not available, returns false.

source

pub fn get_release_behavior(&self) -> ReleaseBehavior

Returns the behavior when the current OpenGL context is changed.

The most common value is Flush. In order to get None you must explicitly request it during creation.

source

pub fn get_max_anisotropy_support(&self) -> Option<u16>

Returns the maximum value that can be used for anisotropic filtering, or None if the hardware doesn’t support it.

source

pub fn get_max_viewport_dimensions(&self) -> (u32, u32)

Returns the maximum dimensions of the viewport.

Glium will panic if you request a larger viewport than this when drawing.

source

pub fn release_shader_compiler(&self)

Releases the shader compiler, indicating that no new programs will be created for a while.

This method is a no-op if it’s not available in the implementation.

source

pub fn get_free_video_memory(&self) -> Option<usize>

Returns an estimate of the amount of video memory available in bytes.

Returns None if no estimate is available.

source

pub fn read_front_buffer<T>(&self) -> Result<T, ReadError>where T: Texture2dDataSink<(u8, u8, u8, u8)>,

Reads the content of the front buffer.

You will only see the data that has finished being drawn.

This function can return any type that implements Texture2dDataSink<(u8, u8, u8, u8)>.

Example
let pixels: Result<Vec<Vec<(u8, u8, u8, u8)>>, _> = display.read_front_buffer();
source

pub unsafe fn exec_in_context<'a, T, F>(&self, action: F) -> Twhere T: Send + 'static, F: FnOnce() -> T + 'a,

Execute an arbitrary closure with the OpenGL context active. Useful if another component needs to directly manipulate OpenGL state.

If action manipulates any OpenGL state, it must be restored before action completes.

source

pub fn assert_no_error(&self, user_msg: Option<&str>)

Asserts that there are no OpenGL errors pending.

This function should be used in tests.

source

pub fn synchronize(&self)

DEPRECATED. Renamed finish.

source

pub fn finish(&self)

Calls glFinish(). This waits until all the previously issued commands have finished being executed.

When you execute OpenGL functions, they are not executed immediately. Instead they are put in a queue. This function flushes this queue, then waits until all commands have finished being executed.

You normally don’t need to call this function manually, except for debugging purposes.

source

pub fn flush(&self)

Calls glFlush(). This starts executing the commands that you have issued if it is not yet the case.

When you execute OpenGL functions, they are not executed immediately. Instead they are put in a queue. This function flushes this queue so that commands start being executed.

You normally don’t need to call this function manually. Swapping buffers automatically flushes the queue. This function can be useful if you want to benchmark the time it takes from your OpenGL driver to process commands.

source

pub fn insert_debug_marker(&self, marker: &str) -> Result<(), ()>

Inserts a debugging string in the commands queue. If you use an OpenGL debugger, you will be able to see that string.

This is helpful to understand where you are when you have big applications.

Returns Err if the backend doesn’t support this functionality. You can choose whether to call .unwrap() if you want to make sure that it works, or .ok() if you don’t care.

source

pub fn debug_insert_debug_marker(&self, marker: &str) -> Result<(), ()>

Same as insert_debug_marker, except that if you don’t compile with debug_assertions it is a no-op and returns Ok.

Trait Implementations§

source§

impl Deref for Headless

§

type Target = Context

The resulting type after dereferencing.
source§

fn deref(&self) -> &Context

Dereferences the value.
source§

impl Facade for Headless

source§

fn get_context(&self) -> &Rc<Context>

Returns an opaque type that contains the OpenGL state, extensions, version, etc.

Auto Trait Implementations§

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> CapabilitiesSource for Twhere T: Facade + ?Sized,

source§

fn get_version(&self) -> &Version

Returns the version of the backend.
source§

fn get_extensions(&self) -> &ExtensionsList

Returns the list of extensions that are supported.
source§

fn get_capabilities(&self) -> &Capabilities

Returns the capabilities of the backend.
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.