Skip to main content

Crate edgefirst_egl

Crate edgefirst_egl 

Source
Expand description

This crate provides a binding for the Khronos EGL 1.4/1.5 API.

It is a trimmed, maintained fork of the khronos-egl crate (itself a fork of the unmaintained egl crate), kept current for the EdgeFirst HAL. Only runtime (dynamic) loading of libEGL is supported; the upstream static-linking path has been removed.

§Usage

Enable the dynamic feature and load the EGL API at runtime via libloading into an Instance<Dynamic<libloading::Library>>:

edgefirst-egl = { version = ..., features = ["dynamic"] }
let lib = unsafe { libloading::Library::new("libEGL.so.1") }.expect("unable to find libEGL.so.1");
let egl = unsafe { egl::DynamicInstance::<egl::EGL1_4>::load_required_from(lib) }.expect("unable to load libEGL.so.1");

egl::EGL1_4 specifies the minimum required EGL version. When libEGL.so.1 provides a newer version you can upcast for version-specific features:

match egl.upcast::<egl::EGL1_5>() {
  Some(egl1_5) => {
    // do something with EGL 1.5
  }
  None => {
    // do something with EGL 1.4 instead.
  }
};

Modules§

api

Structs§

ClientBuffer
Config
Context
Display
Image
Instance
EGL API instance.
Surface
Sync

Enums§

Error
EGL errors.
Version

Constants§

ALPHA_FORMAT
ALPHA_FORMAT_NONPRE
ALPHA_FORMAT_PRE
ALPHA_MASK_SIZE
ALPHA_SIZE
ATTRIB_NONE
BACK_BUFFER
BAD_ACCESS
BAD_ALLOC
BAD_ATTRIBUTE
BAD_CONFIG
BAD_CONTEXT
BAD_CURRENT_SURFACE
BAD_DISPLAY
BAD_MATCH
BAD_NATIVE_PIXMAP
BAD_NATIVE_WINDOW
BAD_PARAMETER
BAD_SURFACE
BIND_TO_TEXTURE_RGB
BIND_TO_TEXTURE_RGBA
BLUE_SIZE
BUFFER_DESTROYED
BUFFER_PRESERVED
BUFFER_SIZE
CLIENT_APIS
CL_EVENT_HANDLE
COLORSPACE
COLORSPACE_LINEAR
COLORSPACE_sRGB
COLOR_BUFFER_TYPE
CONDITION_SATISFIED
CONFIG_CAVEAT
CONFIG_ID
CONFORMANT
CONTEXT_CLIENT_TYPE
CONTEXT_CLIENT_VERSION
CONTEXT_LOST
CONTEXT_MAJOR_VERSION
CONTEXT_MINOR_VERSION
CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT
CONTEXT_OPENGL_CORE_PROFILE_BIT
CONTEXT_OPENGL_DEBUG
CONTEXT_OPENGL_FORWARD_COMPATIBLE
CONTEXT_OPENGL_PROFILE_MASK
CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY
CONTEXT_OPENGL_ROBUST_ACCESS
CORE_NATIVE_ENGINE
DEFAULT_DISPLAY
DEPTH_SIZE
DISPLAY_SCALING
DONT_CARE
DRAW
EXTENSIONS
FALSE
FOREVER
GL_COLORSPACE
GL_COLORSPACE_LINEAR
GL_COLORSPACE_SRGB
GL_RENDERBUFFER
GL_TEXTURE_2D
GL_TEXTURE_3D
GL_TEXTURE_CUBE_MAP_NEGATIVE_X
GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
GL_TEXTURE_CUBE_MAP_POSITIVE_X
GL_TEXTURE_CUBE_MAP_POSITIVE_Y
GL_TEXTURE_CUBE_MAP_POSITIVE_Z
GL_TEXTURE_LEVEL
GL_TEXTURE_ZOFFSET
GREEN_SIZE
HEIGHT
HORIZONTAL_RESOLUTION
IMAGE_PRESERVED
LARGEST_PBUFFER
LATEST
Latest available EGL version.
LEVEL
LOSE_CONTEXT_ON_RESET
LUMINANCE_BUFFER
LUMINANCE_SIZE
MATCH_NATIVE_PIXMAP
MAX_PBUFFER_HEIGHT
MAX_PBUFFER_PIXELS
MAX_PBUFFER_WIDTH
MAX_SWAP_INTERVAL
MIN_SWAP_INTERVAL
MIPMAP_LEVEL
MIPMAP_TEXTURE
MULTISAMPLE_RESOLVE
MULTISAMPLE_RESOLVE_BOX
MULTISAMPLE_RESOLVE_BOX_BIT
MULTISAMPLE_RESOLVE_DEFAULT
NATIVE_RENDERABLE
NATIVE_VISUAL_ID
NATIVE_VISUAL_TYPE
NONE
NON_CONFORMANT_CONFIG
NOT_INITIALIZED
NO_CONTEXT
NO_DISPLAY
NO_IMAGE
NO_RESET_NOTIFICATION
NO_SURFACE
NO_SYNC
NO_TEXTURE
OPENGL_API
OPENGL_BIT
OPENGL_ES2_BIT
OPENGL_ES3_BIT
OPENGL_ES_API
OPENGL_ES_BIT
OPENVG_API
OPENVG_BIT
OPENVG_IMAGE
PBUFFER_BIT
PIXEL_ASPECT_RATIO
PIXMAP_BIT
READ
RED_SIZE
RENDERABLE_TYPE
RENDER_BUFFER
RGB_BUFFER
SAMPLES
SAMPLE_BUFFERS
SIGNALED
SINGLE_BUFFER
SLOW_CONFIG
STENCIL_SIZE
SUCCESS
SURFACE_TYPE
SWAP_BEHAVIOR
SWAP_BEHAVIOR_PRESERVED_BIT
SYNC_CL_EVENT
SYNC_CL_EVENT_COMPLETE
SYNC_CONDITION
SYNC_FENCE
SYNC_FLUSH_COMMANDS_BIT
SYNC_PRIOR_COMMANDS_COMPLETE
SYNC_STATUS
SYNC_TYPE
TEXTURE_2D
TEXTURE_FORMAT
TEXTURE_RGB
TEXTURE_RGBA
TEXTURE_TARGET
TIMEOUT_EXPIRED
TRANSPARENT_BLUE_VALUE
TRANSPARENT_GREEN_VALUE
TRANSPARENT_RED_VALUE
TRANSPARENT_RGB
TRANSPARENT_TYPE
TRUE
UNKNOWN
UNSIGNALED
VENDOR
VERSION
VERTICAL_RESOLUTION
VG_ALPHA_FORMAT
VG_ALPHA_FORMAT_NONPRE
VG_ALPHA_FORMAT_PRE
VG_ALPHA_FORMAT_PRE_BIT
VG_COLORSPACE
VG_COLORSPACE_LINEAR
VG_COLORSPACE_LINEAR_BIT
VG_COLORSPACE_sRGB
WIDTH
WINDOW_BIT

Traits§

Api
EGL API provider.
Downcast
Upcast

Functions§

check_attrib_list
check_int_list

Type Aliases§

Attrib
Boolean
EGLClientBuffer
EGLConfig
EGLContext
EGLDisplay
EGLImage
EGLSurface
EGLSync
Enum
Int
NativeDisplayType
NativePixmapType
NativeWindowType
Time