pub enum EglDisplayKind {
Gbm,
PlatformDevice,
Default,
}Expand description
Identifies the type of EGL display used for headless OpenGL ES rendering.
The HAL creates a surfaceless GLES 3.0 context
(EGL_KHR_surfaceless_context + EGL_KHR_no_config_context) and
renders exclusively through FBOs backed by EGLImages imported from
DMA-buf file descriptors. No window or PBuffer surface is created.
Displays are probed in priority order: PlatformDevice first (zero
external dependencies), then GBM, then Default. Use
probe_egl_displays to discover which are available and
ImageProcessorConfig::egl_display
to override the auto-detection.
§Display Types
-
PlatformDevice— UsesEGL_EXT_device_enumerationto query available EGL devices viaeglQueryDevicesEXT, then selects the first device witheglGetPlatformDisplay(EGL_EXT_platform_device, ...). Headless and compositor-free with zero external library dependencies. Works on NVIDIA GPUs and newer Vivante drivers. -
Gbm— Opens a DRM render node (e.g./dev/dri/renderD128) and creates a GBM (Generic Buffer Manager) device, then callseglGetPlatformDisplay(EGL_PLATFORM_GBM_KHR, gbm_device). Requireslibgbmand a DRM render node. Needed on ARM Mali (i.MX95) and older Vivante drivers that do not exposeEGL_EXT_platform_device. -
Default— CallseglGetDisplay(EGL_DEFAULT_DISPLAY), letting the EGL implementation choose the display. On Wayland systems this connects to the compositor; on X11 it connects to the X server. May block on headless systems where a compositor is expected but not running.
Variants§
Trait Implementations§
Source§impl Clone for EglDisplayKind
impl Clone for EglDisplayKind
Source§fn clone(&self) -> EglDisplayKind
fn clone(&self) -> EglDisplayKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EglDisplayKind
impl Debug for EglDisplayKind
Source§impl Display for EglDisplayKind
impl Display for EglDisplayKind
Source§impl Hash for EglDisplayKind
impl Hash for EglDisplayKind
Source§impl PartialEq for EglDisplayKind
impl PartialEq for EglDisplayKind
impl Copy for EglDisplayKind
impl Eq for EglDisplayKind
impl StructuralPartialEq for EglDisplayKind
Auto Trait Implementations§
impl Freeze for EglDisplayKind
impl RefUnwindSafe for EglDisplayKind
impl Send for EglDisplayKind
impl Sync for EglDisplayKind
impl Unpin for EglDisplayKind
impl UnsafeUnpin for EglDisplayKind
impl UnwindSafe for EglDisplayKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.