KWin
|
OpenGL Backend using Egl on a GBM surface. More...
#include <drm_egl_backend.h>
Public Member Functions | |
EglGbmBackend (DrmBackend *drmBackend) | |
~EglGbmBackend () override | |
std::unique_ptr< SurfaceTexture > | createSurfaceTextureWayland (SurfacePixmap *pixmap) override |
GraphicsBufferAllocator * | graphicsBufferAllocator () const override |
void | present (Output *output, const std::shared_ptr< OutputFrame > &frame) override |
OutputLayer * | primaryLayer (Output *output) override |
OutputLayer * | cursorLayer (Output *output) override |
void | init () override |
bool | prefer10bpc () const override |
std::shared_ptr< DrmPipelineLayer > | createPrimaryLayer (DrmPipeline *pipeline) override |
std::shared_ptr< DrmPipelineLayer > | createCursorLayer (DrmPipeline *pipeline) override |
std::shared_ptr< DrmOutputLayer > | createLayer (DrmVirtualOutput *output) override |
std::pair< std::shared_ptr< KWin::GLTexture >, ColorDescription > | textureForOutput (Output *requestedOutput) const override |
DrmGpu * | gpu () const |
EglDisplay * | displayForGpu (DrmGpu *gpu) |
std::shared_ptr< EglContext > | contextForGpu (DrmGpu *gpu) |
![]() | |
~AbstractEglBackend () override | |
bool | makeCurrent () override |
void | doneCurrent () override |
EGLSurface | surface () const |
EGLConfig | config () const |
EglDisplay * | eglDisplayObject () const |
EglContext * | contextObject () |
bool | testImportBuffer (GraphicsBuffer *buffer) override |
QHash< uint32_t, QList< uint64_t > > | supportedFormats () const override |
QList< LinuxDmaBufV1Feedback::Tranche > | tranches () const |
dev_t | deviceId () const |
std::shared_ptr< GLTexture > | importDmaBufAsTexture (const DmaBufAttributes &attributes) const |
EGLImageKHR | importDmaBufAsImage (const DmaBufAttributes &attributes) const |
EGLImageKHR | importDmaBufAsImage (const DmaBufAttributes &attributes, int plane, int format, const QSize &size) const |
EGLImageKHR | importBufferAsImage (GraphicsBuffer *buffer) |
EGLImageKHR | importBufferAsImage (GraphicsBuffer *buffer, int plane, int format, const QSize &size) |
![]() | |
OpenGLBackend () | |
virtual | ~OpenGLBackend () |
CompositingType | compositingType () const override final |
bool | checkGraphicsReset () override final |
bool | isFailed () const |
Whether the creation of the Backend failed. | |
bool | supportsBufferAge () const |
bool | supportsNativeFence () const |
QList< QByteArray > | extensions () const |
bool | hasExtension (const QByteArray &extension) const |
void | copyPixels (const QRegion ®ion, const QSize &screenSize) |
![]() | |
RenderBackend (QObject *parent=nullptr) | |
virtual OverlayWindow * | overlayWindow () const |
virtual std::unique_ptr< SurfaceTexture > | createSurfaceTextureX11 (SurfacePixmapX11 *pixmap) |
![]() | |
virtual | ~DrmRenderBackend ()=default |
Friends | |
class | EglGbmTexture |
Additional Inherited Members | |
![]() | |
AbstractEglBackend (dev_t deviceId=0) | |
void | setSurface (const EGLSurface &surface) |
void | cleanup () |
virtual void | cleanupSurfaces () |
void | setEglDisplay (EglDisplay *display) |
void | initKWinGL () |
void | initClientExtensions () |
void | initWayland () |
bool | hasClientExtension (const QByteArray &ext) const |
bool | isOpenGLES () const |
bool | createContext (EGLConfig config) |
bool | ensureGlobalShareContext (EGLConfig config) |
void | destroyGlobalShareContext () |
::EGLContext | createContextInternal (::EGLContext sharedContext) |
void | teardown () |
![]() | |
void | setFailed (const QString &reason) |
Sets the backend initialization to failed. | |
void | setSupportsBufferAge (bool value) |
void | setSupportsNativeFence (bool value) |
void | setExtensions (const QList< QByteArray > &extensions) |
![]() | |
EglDisplay * | m_display = nullptr |
EGLSurface | m_surface = EGL_NO_SURFACE |
std::shared_ptr< EglContext > | m_context |
QList< QByteArray > | m_clientExtensions |
const dev_t | m_deviceId |
QList< LinuxDmaBufV1Feedback::Tranche > | m_tranches |
QHash< std::pair< GraphicsBuffer *, int >, EGLImageKHR > | m_importedBuffers |
OpenGL Backend using Egl on a GBM surface.
Definition at line 38 of file drm_egl_backend.h.
KWin::EglGbmBackend::EglGbmBackend | ( | DrmBackend * | drmBackend | ) |
Definition at line 29 of file drm_egl_backend.cpp.
|
override |
Definition at line 39 of file drm_egl_backend.cpp.
std::shared_ptr< EglContext > KWin::EglGbmBackend::contextForGpu | ( | DrmGpu * | gpu | ) |
Definition at line 119 of file drm_egl_backend.cpp.
|
overridevirtual |
Implements KWin::DrmRenderBackend.
Definition at line 187 of file drm_egl_backend.cpp.
|
overridevirtual |
Implements KWin::DrmRenderBackend.
Definition at line 192 of file drm_egl_backend.cpp.
|
overridevirtual |
Implements KWin::DrmRenderBackend.
Definition at line 182 of file drm_egl_backend.cpp.
|
overridevirtual |
Reimplemented from KWin::RenderBackend.
Definition at line 140 of file drm_egl_backend.cpp.
|
overridevirtual |
Reimplemented from KWin::RenderBackend.
Definition at line 160 of file drm_egl_backend.cpp.
EglDisplay * KWin::EglGbmBackend::displayForGpu | ( | DrmGpu * | gpu | ) |
Definition at line 107 of file drm_egl_backend.cpp.
DrmGpu * KWin::EglGbmBackend::gpu | ( | ) | const |
Definition at line 197 of file drm_egl_backend.cpp.
|
overridevirtual |
Reimplemented from KWin::RenderBackend.
Definition at line 145 of file drm_egl_backend.cpp.
|
overridevirtual |
Implements KWin::OpenGLBackend.
Definition at line 87 of file drm_egl_backend.cpp.
|
overridevirtual |
Reimplemented from KWin::AbstractEglBackend.
Definition at line 175 of file drm_egl_backend.cpp.
|
overridevirtual |
Implements KWin::RenderBackend.
Definition at line 150 of file drm_egl_backend.cpp.
|
overridevirtual |
Implements KWin::RenderBackend.
Definition at line 155 of file drm_egl_backend.cpp.
|
overridevirtual |
Reimplemented from KWin::OpenGLBackend.
Definition at line 165 of file drm_egl_backend.cpp.
|
friend |
Definition at line 74 of file drm_egl_backend.h.