Kanzi 4.1.2
kanzi::platform::EglQnxStreamsGraphicsContext Class Reference

EGL implementation of GlGraphicsContext for QNX streams. More...

#include <kanzi/platform/platform/gl/graphics_context/egl_qnx_streams/egl_qnx_streams_graphics_context.hpp>

Inheritance diagram for kanzi::platform::EglQnxStreamsGraphicsContext:
[legend]

Public Member Functions

 EglQnxStreamsGraphicsContext (PlatformContext &platformContext, InitializationInfo &&info) noexcept
 Constructor.
 
bool swapBuffers (SurfaceHandle surface) override
 GlGraphicsContext::swapBuffers() implementation.
 
- Public Member Functions inherited from kanzi::platform::EglGraphicsContext
SurfaceHandle createSurface (NativeSurfaceHandle windowHandle, const SurfaceProperties &properties) override
 GlGraphicsContext::createSurface() implementation.
 
ThreadContextHandle createThreadContext () override
 GlGraphicsContext::createThreadContext() implementation.
 
bool destroySurface (SurfaceHandle surface) override
 GlGraphicsContext::destroySurface() implementation.
 
void destroyThreadContext (ThreadContextHandle context) override
 GlGraphicsContext::destroyThreadContext() implementation.
 
 EglGraphicsContext (PlatformContext &platformContext, InitializationInfo &&info)
 Constructor.
 
KZ_NO_DISCARD ApiBackendBasicInfo getApiBackendBasicInfo () const noexcept
 Provides basic information about current API backend.
 
SurfaceContextHandle getCurrentSurfaceContext () override
 GlGraphicsContext::getCurrentSurfaceContext() implementation.
 
void * getGLProcAddress (const char *pName) override
 GlGraphicsContext::getGLProcAddress() implementation.
 
SurfaceContextHandle getSurfaceGLContext (SurfaceHandle surface) override
 GlGraphicsContext::getSurfaceGLContext() implementation.
 
SurfaceProperties getSurfaceProperties (SurfaceHandle surface) override
 GlGraphicsContext::getSurfaceProperties() implementation.
 
vector< SurfaceHandle > getSurfaces (SurfaceContextHandle context) override
 GlGraphicsContext::getSurfaces() implementation.
 
bool initialize () override
 GlGraphicsContext::initialize() implementation.
 
bool isFeatureEnabled (PlatformFeatureId feature) const override
 GlGraphicsContext::isFeatureEnabled() implementation.
 
void makeSurfaceCurrent (SurfaceHandle surface) override
 GlGraphicsContext::makeSurfaceCurrent() implementation.
 
void makeThreadCurrent (ThreadContextHandle context) override
 GlGraphicsContext::makeThreadCurrent() implementation.
 
void shutdown () override
 GlGraphicsContext::shutdown() implementation.
 
void updateSurfaceDimensions (SurfaceHandle surface, uint32_t width, uint32_t height) override
 GlGraphicsContext::updateSurfaceDimensions() implementation.
 
virtual ~EglGraphicsContext ()=default
 Destructor.
 
- Public Member Functions inherited from kanzi::platform::GlGraphicsContext
template<typename Return , typename... Args>
bool getGLProcAddressInto (function_ptr< Return, Args... > &proc, const char *pName)
 Dynamically loads a GL function pointer into specified location.
 
virtual ~GlGraphicsContext ()=default
 Destructor.
 

Protected Member Functions

KZ_NO_DISCARD unique_ptr< AbstractWindowSurface > createDummySurface (EGLPBufferSurface &&pbuffer) noexcept override
 EglGraphicsContext::createDummySurface() implementation.
 
KZ_NO_DISCARD unique_ptr< AbstractWindowSurface > createWindowSurface (NativeSurfaceHandle windowHandle, const EGLConfig &config, SurfaceColorSpace colorSpace) noexcept override
 EglGraphicsContext::createWindowSurface() implementation.
 
KZ_NO_DISCARD EGLConfig selectEGLConfig (const SurfaceProperties &properties) noexcept override
 EglGraphicsContext::selectEGLConfig() implementation.
 
bool setSwapIntervalForCurrentSurface (PresentMode mode) noexcept override
 EglGraphicsContext::setSwapIntervalForCurrentSurface() implementation.
 
- Protected Member Functions inherited from kanzi::platform::EglGraphicsContext
KZ_NO_DISCARD PresentMode clampToSupportedPresentMode (PresentMode mode) noexcept
 Clamps provided PresentMode to a supported subset.
 
virtual KZ_NO_DISCARD ContextNodePtr createEGLContext (const EGLConfig &config, ::EGLContext parentContext) noexcept
 Creates a new suitable context for provided config.
 
virtual bool destroySurfaceInternal (SurfaceNodePtr surfaceNode) noexcept
 Destroys EGL surface.
 
KZ_NO_DISCARD ContextNodePtr ensureEGLContext (const EGLConfig &config, ::EGLContext parentContext) noexcept
 Finds the context that renders surfaces of a config, or creates one.
 
virtual KZ_NO_DISCARD ::EGLNativeDisplayType fetchNativeDisplay (PlatformContext &platformContext)
 Gets a native EGL display.
 
KZ_NO_DISCARD ContextNodePtr findLastUsedContext (thread::id threadId) noexcept
 Finds last context that was used on a specified thread.
 
KZ_NO_DISCARD const EGLDisplay & getDisplay () const noexcept
 Gets EGL display.
 
KZ_NO_DISCARD const GLFunctionPointers & getGlFunctionPointers () const noexcept
 Gets GL function pointers struct.
 
virtual KZ_NO_DISCARD flat_set< string_view > getUndiscoverableEglExtensions () noexcept
 Gets extensions that platform does not report support for, but are nevertheless supported.
 
virtual KZ_NO_DISCARD GLFunctionPointers loadGlFunctions () noexcept
 Loads required GL function pointers.
 
virtual bool makeCurrentInternal (ContextNodePtr contextNode, SurfaceNodePtr surfaceNode) noexcept
 Makes provided context and surface current on this thread.
 
KZ_NO_DISCARD flat_set< string_view > queryEglExtensions () const noexcept
 Queries supported EGL extensions.
 
KZ_NO_DISCARD flat_set< string_view > queryGlExtensions () const noexcept
 Queries supported GL extensions.
 
KZ_NO_DISCARD SurfaceColorSpace selectSuitableColorSpace (const SurfaceProperties &properties) noexcept
 Selects suitable colorspace for specified surface properties.
 
void setSwapInterval (SurfaceNodePtr surfaceNode, ContextNodePtr contextNode, ContextNodePtr lastUsedContextNode, PresentMode presentMode) noexcept
 Sets swap interval for a specified surface, while preserving current EGL context and surface.
 
KZ_NO_DISCARD vector< EGLint > surfaceColorSpaceToAttributes (SurfaceColorSpace colorSpace) noexcept
 Constructs EGL attributes for a specified SurfaceColorSpace.
 

Additional Inherited Members

- Protected Types inherited from kanzi::platform::EglGraphicsContext
using ContextContainer
 
using ContextNodePtr
 
using SurfaceContainer
 
using SurfaceNodePtr
 
using ThreadContainer
 
using ThreadNodePtr
 

Detailed Description

EGL implementation of GlGraphicsContext for QNX streams.

Uses multiple EGLPixmap surfaces to implement a buffered EGL surface. Intended for use with QnxStreamEGLGraphicsOutput.

Since
Kanzi 4.1.0
Kanzi 4.1.0 renamed from QnxStreamEglContextApi.
Attention
This feature is experimental and is likely to change in future releases.

Constructor & Destructor Documentation

◆ EglQnxStreamsGraphicsContext()

kanzi::platform::EglQnxStreamsGraphicsContext::EglQnxStreamsGraphicsContext ( PlatformContext & platformContext,
InitializationInfo && info )
explicitnoexcept

Constructor.

Parameters
platformContextPlatform context to use.
infoInitialization info struct.

Member Function Documentation

◆ swapBuffers()

bool kanzi::platform::EglQnxStreamsGraphicsContext::swapBuffers ( SurfaceHandle surface)
overridevirtual

◆ createWindowSurface()

KZ_NO_DISCARD unique_ptr< AbstractWindowSurface > kanzi::platform::EglQnxStreamsGraphicsContext::createWindowSurface ( NativeSurfaceHandle windowHandle,
const EGLConfig & config,
SurfaceColorSpace colorSpace )
overrideprotectedvirtualnoexcept

◆ createDummySurface()

KZ_NO_DISCARD unique_ptr< AbstractWindowSurface > kanzi::platform::EglQnxStreamsGraphicsContext::createDummySurface ( EGLPBufferSurface && pbuffer)
overrideprotectedvirtualnoexcept

◆ selectEGLConfig()

KZ_NO_DISCARD EGLConfig kanzi::platform::EglQnxStreamsGraphicsContext::selectEGLConfig ( const SurfaceProperties & properties)
overrideprotectedvirtualnoexcept

◆ setSwapIntervalForCurrentSurface()

bool kanzi::platform::EglQnxStreamsGraphicsContext::setSwapIntervalForCurrentSurface ( PresentMode mode)
overrideprotectedvirtualnoexcept

EglGraphicsContext::setSwapIntervalForCurrentSurface() implementation.

Does nothing, because the swap interval does not apply to pixmap surfaces. The stream presents the buffers.

Reimplemented from kanzi::platform::EglGraphicsContext.


The documentation for this class was generated from the following file: