Struct egli::Display
[−]
[src]
pub struct Display { // some fields omitted }
[EGL 1.0]
RAII wrapper for
EGLDisplay.
When dropped, frees up any associated surface and context using
eglMakeCurrent(.., NO_SURFACE, NO_SURFACE, NO_CONTEXT);
call. Followed by eglTerminate
.
Methods
impl Display
fn from_display_id(display_id: EGLNativeDisplayType) -> Result<Display>
[EGL 1.0]
Create a Display
from an EGL display connection.
On success, returns a Display
value that will clean up resources when terminated.
If no display connection matching display_id
is available, EGL_NO_DISPLAY is
returned. No error is generated.
display_id
Specifies the display to connect to. egl::EGL_DEFAULT_DISPLAY
indicates the
default display.
fn from_default_display() -> Result<Display>
[EGL 1.0]
Creates a Display
from the default display.
This is a convenience wrapper that calls Display::from_display_id
with
egl::EGL_DEFAULT_DISPLAY
option.
fn initialize_and_get_version(&self) -> Result<Version>
[EGL 1.0]
Initialize this EGL display connection and return EGL version.
eglInitialize
initializes the EGL display connection obtained with eglGetDisplay
.
Initializing an already initialized EGL display connection has no effect besides
returning the version numbers.
fn initialize(&self) -> Result<()>
[EGL 1.0]
Initialize this EGL display connection.
eglInitialize
initializes the EGL display connection obtained with eglGetDisplay
.
Initializing an already initialized EGL display connection has no effect.
fn query_client_apis(&self) -> Result<&'static str>
[EGL 1.2]
Query EGL_CLIENT_APIS.
Returns a string describing which client rendering APIs are supported. The string contains a space-separate list of API names. The list must include at least one of OpenGL, OpenGL_ES, or OpenVG. These strings correspond respectively to values EGL_OPENGL_API, EGL_OPENGL_ES_API, and EGL_OPENVG_API of the eglBindAPI, api argument.
fn query_vendor(&self) -> Result<&'static str>
[EGL 1.0]
Query EGL_VENDOR.
The vendor-specific information is optional; if present, its format and contents are implementation specific.
fn query_version(&self) -> Result<&'static str>
[EGL 1.0]
Get supported EGL version for this display.
Returns a version or release number. The EGL_VERSION string is laid out as follows:
major_version.minor_version space vendor_specific_info
Both the major and minor portions of the version number are numeric. Their values must match the major and minor values returned by initialize.
fn query_extensions(&self) -> Result<&'static str>
[EGL 1.0]
Get the set of display extensions supported by this display.
Returns a space separated list of supported extensions.
fn get_configs(&self) -> Result<Vec<FrameBufferConfigRef>>
[EGL 1.0]
Get all possible display configurations.
Internally, this calls eglGetConfigs
twice: to get total config count,
and to fill allocated memory with config handles.
These handles are then wrapped into a new Vec<FrameBufferConfigRef>
.
fn config_filter(&self) -> ConfigFilterRef
[EGL 1.0]
Creates a new config filter for this display for safe
invocation of eglChooseConfig
.
See documentation of ConfigFilterRef
for the list of all available filter
methods.
Example
use egli::Display; let display = Display::from_default_display() .expect("failed to get default display"); let configs = display.config_filter() .with_red_size(8) .choose_configs();
fn create_window_surface(&self, config: FrameBufferConfigRef, window: EGLNativeWindowType) -> Result<Surface>
[EGL 1.0]
Create a new EGL window surface.
fn create_context(&self, config: FrameBufferConfigRef) -> Result<Context>
[EGL 1.0]
Create a new EGL rendering context.
fn create_context_with_client_version(&self, config: FrameBufferConfigRef, client_version: ContextClientVersion) -> Result<Context>
[EGL 1.3]
Create a new EGL rendering context.
fn make_current(&self, draw: &Surface, read: &Surface, context: &Context) -> Result<()>
[EGL 1.0]
Attach an EGL rendering context to EGL surfaces.
fn make_not_current(&self) -> Result<()>
[EGL 1.0]
Detatch an EGL rendering context from EGL surfaces and contexts.
fn swap_buffers(&self, surface: &Surface) -> Result<()>
[EGL 1.0]
Post EGL surface color buffer to a native window.
fn with_handle<F, R>(&self, action: F) -> R where F: FnOnce(EGLDisplay) -> R
Run an action with inner handle as parameter.
fn forget(self) -> EGLDisplay
Drops Display
without cleaning up any resources.
Returns EGLDisplay
handle.
Alias for Into<egl::EGLDisplay>
.