KWin
Loading...
Searching...
No Matches
Public Member Functions | Friends | List of all members
KWin::EglGbmBackend Class Reference

OpenGL Backend using Egl on a GBM surface. More...

#include <drm_egl_backend.h>

Inheritance diagram for KWin::EglGbmBackend:
KWin::AbstractEglBackend KWin::DrmRenderBackend KWin::OpenGLBackend KWin::RenderBackend

Public Member Functions

 EglGbmBackend (DrmBackend *drmBackend)
 
 ~EglGbmBackend () override
 
std::unique_ptr< SurfaceTexturecreateSurfaceTextureWayland (SurfacePixmap *pixmap) override
 
GraphicsBufferAllocatorgraphicsBufferAllocator () const override
 
void present (Output *output, const std::shared_ptr< OutputFrame > &frame) override
 
OutputLayerprimaryLayer (Output *output) override
 
OutputLayercursorLayer (Output *output) override
 
void init () override
 
bool prefer10bpc () const override
 
std::shared_ptr< DrmPipelineLayercreatePrimaryLayer (DrmPipeline *pipeline) override
 
std::shared_ptr< DrmPipelineLayercreateCursorLayer (DrmPipeline *pipeline) override
 
std::shared_ptr< DrmOutputLayercreateLayer (DrmVirtualOutput *output) override
 
std::pair< std::shared_ptr< KWin::GLTexture >, ColorDescriptiontextureForOutput (Output *requestedOutput) const override
 
DrmGpugpu () const
 
EglDisplaydisplayForGpu (DrmGpu *gpu)
 
std::shared_ptr< EglContextcontextForGpu (DrmGpu *gpu)
 
- Public Member Functions inherited from KWin::AbstractEglBackend
 ~AbstractEglBackend () override
 
bool makeCurrent () override
 
void doneCurrent () override
 
EGLSurface surface () const
 
EGLConfig config () const
 
EglDisplayeglDisplayObject () const
 
EglContextcontextObject ()
 
bool testImportBuffer (GraphicsBuffer *buffer) override
 
QHash< uint32_t, QList< uint64_t > > supportedFormats () const override
 
QList< LinuxDmaBufV1Feedback::Tranchetranches () const
 
dev_t deviceId () const
 
std::shared_ptr< GLTextureimportDmaBufAsTexture (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)
 
- Public Member Functions inherited from KWin::OpenGLBackend
 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 &region, const QSize &screenSize)
 
- Public Member Functions inherited from KWin::RenderBackend
 RenderBackend (QObject *parent=nullptr)
 
virtual OverlayWindowoverlayWindow () const
 
virtual std::unique_ptr< SurfaceTexturecreateSurfaceTextureX11 (SurfacePixmapX11 *pixmap)
 
- Public Member Functions inherited from KWin::DrmRenderBackend
virtual ~DrmRenderBackend ()=default
 

Friends

class EglGbmTexture
 

Additional Inherited Members

- Protected Member Functions inherited from KWin::AbstractEglBackend
 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 ()
 
- Protected Member Functions inherited from KWin::OpenGLBackend
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)
 
- Protected Attributes inherited from KWin::AbstractEglBackend
EglDisplaym_display = nullptr
 
EGLSurface m_surface = EGL_NO_SURFACE
 
std::shared_ptr< EglContextm_context
 
QList< QByteArray > m_clientExtensions
 
const dev_t m_deviceId
 
QList< LinuxDmaBufV1Feedback::Tranchem_tranches
 
QHash< std::pair< GraphicsBuffer *, int >, EGLImageKHRm_importedBuffers
 

Detailed Description

OpenGL Backend using Egl on a GBM surface.

Definition at line 38 of file drm_egl_backend.h.

Constructor & Destructor Documentation

◆ EglGbmBackend()

KWin::EglGbmBackend::EglGbmBackend ( DrmBackend * drmBackend)

Definition at line 29 of file drm_egl_backend.cpp.

◆ ~EglGbmBackend()

KWin::EglGbmBackend::~EglGbmBackend ( )
override

Definition at line 39 of file drm_egl_backend.cpp.

Member Function Documentation

◆ contextForGpu()

std::shared_ptr< EglContext > KWin::EglGbmBackend::contextForGpu ( DrmGpu * gpu)

Definition at line 119 of file drm_egl_backend.cpp.

◆ createCursorLayer()

std::shared_ptr< DrmPipelineLayer > KWin::EglGbmBackend::createCursorLayer ( DrmPipeline * pipeline)
overridevirtual

Implements KWin::DrmRenderBackend.

Definition at line 187 of file drm_egl_backend.cpp.

◆ createLayer()

std::shared_ptr< DrmOutputLayer > KWin::EglGbmBackend::createLayer ( DrmVirtualOutput * output)
overridevirtual

Implements KWin::DrmRenderBackend.

Definition at line 192 of file drm_egl_backend.cpp.

◆ createPrimaryLayer()

std::shared_ptr< DrmPipelineLayer > KWin::EglGbmBackend::createPrimaryLayer ( DrmPipeline * pipeline)
overridevirtual

Implements KWin::DrmRenderBackend.

Definition at line 182 of file drm_egl_backend.cpp.

◆ createSurfaceTextureWayland()

std::unique_ptr< SurfaceTexture > KWin::EglGbmBackend::createSurfaceTextureWayland ( SurfacePixmap * pixmap)
overridevirtual

Reimplemented from KWin::RenderBackend.

Definition at line 140 of file drm_egl_backend.cpp.

◆ cursorLayer()

OutputLayer * KWin::EglGbmBackend::cursorLayer ( Output * output)
overridevirtual

Reimplemented from KWin::RenderBackend.

Definition at line 160 of file drm_egl_backend.cpp.

◆ displayForGpu()

EglDisplay * KWin::EglGbmBackend::displayForGpu ( DrmGpu * gpu)

Definition at line 107 of file drm_egl_backend.cpp.

◆ gpu()

DrmGpu * KWin::EglGbmBackend::gpu ( ) const

Definition at line 197 of file drm_egl_backend.cpp.

◆ graphicsBufferAllocator()

GraphicsBufferAllocator * KWin::EglGbmBackend::graphicsBufferAllocator ( ) const
overridevirtual

Reimplemented from KWin::RenderBackend.

Definition at line 145 of file drm_egl_backend.cpp.

◆ init()

void KWin::EglGbmBackend::init ( )
overridevirtual

Implements KWin::OpenGLBackend.

Definition at line 87 of file drm_egl_backend.cpp.

◆ prefer10bpc()

bool KWin::EglGbmBackend::prefer10bpc ( ) const
overridevirtual

Reimplemented from KWin::AbstractEglBackend.

Definition at line 175 of file drm_egl_backend.cpp.

◆ present()

void KWin::EglGbmBackend::present ( Output * output,
const std::shared_ptr< OutputFrame > & frame )
overridevirtual

Implements KWin::RenderBackend.

Definition at line 150 of file drm_egl_backend.cpp.

◆ primaryLayer()

OutputLayer * KWin::EglGbmBackend::primaryLayer ( Output * output)
overridevirtual

Implements KWin::RenderBackend.

Definition at line 155 of file drm_egl_backend.cpp.

◆ textureForOutput()

std::pair< std::shared_ptr< KWin::GLTexture >, ColorDescription > KWin::EglGbmBackend::textureForOutput ( Output * requestedOutput) const
overridevirtual

Reimplemented from KWin::OpenGLBackend.

Definition at line 165 of file drm_egl_backend.cpp.

Friends And Related Symbol Documentation

◆ EglGbmTexture

friend class EglGbmTexture
friend

Definition at line 74 of file drm_egl_backend.h.


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