KWin
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
KWin::AbstractEglBackend Class Reference

#include <abstract_egl_backend.h>

Inheritance diagram for KWin::AbstractEglBackend:
KWin::OpenGLBackend KWin::RenderBackend KWin::EglBackend KWin::EglGbmBackend KWin::VirtualEglBackend KWin::Wayland::WaylandEglBackend KWin::X11WindowedEglBackend

Public Member Functions

 ~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
 
virtual bool prefer10bpc () 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 ()
 
virtual void init ()=0
 
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)
 
virtual std::pair< std::shared_ptr< GLTexture >, ColorDescriptiontextureForOutput (Output *output) const
 
- Public Member Functions inherited from KWin::RenderBackend
 RenderBackend (QObject *parent=nullptr)
 
virtual OverlayWindowoverlayWindow () const
 
virtual OutputLayerprimaryLayer (Output *output)=0
 
virtual OutputLayercursorLayer (Output *output)
 
virtual void present (Output *output, const std::shared_ptr< OutputFrame > &frame)=0
 
virtual GraphicsBufferAllocatorgraphicsBufferAllocator () const
 
virtual std::unique_ptr< SurfaceTexturecreateSurfaceTextureX11 (SurfacePixmapX11 *pixmap)
 
virtual std::unique_ptr< SurfaceTexturecreateSurfaceTextureWayland (SurfacePixmap *pixmap)
 

Protected Member Functions

 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

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

Definition at line 27 of file abstract_egl_backend.h.

Constructor & Destructor Documentation

◆ ~AbstractEglBackend()

KWin::AbstractEglBackend::~AbstractEglBackend ( )
override

Definition at line 50 of file abstract_egl_backend.cpp.

◆ AbstractEglBackend()

KWin::AbstractEglBackend::AbstractEglBackend ( dev_t deviceId = 0)
protected

Definition at line 44 of file abstract_egl_backend.cpp.

Member Function Documentation

◆ cleanup()

void KWin::AbstractEglBackend::cleanup ( )
protected

Definition at line 82 of file abstract_egl_backend.cpp.

◆ cleanupSurfaces()

void KWin::AbstractEglBackend::cleanupSurfaces ( )
protectedvirtual

Reimplemented in KWin::X11WindowedEglBackend.

Definition at line 93 of file abstract_egl_backend.cpp.

◆ config()

EGLConfig KWin::AbstractEglBackend::config ( ) const

Definition at line 366 of file abstract_egl_backend.cpp.

◆ contextObject()

EglContext * KWin::AbstractEglBackend::contextObject ( )

Definition at line 376 of file abstract_egl_backend.cpp.

◆ createContext()

bool KWin::AbstractEglBackend::createContext ( EGLConfig config)
protected

Definition at line 263 of file abstract_egl_backend.cpp.

◆ createContextInternal()

::EGLContext KWin::AbstractEglBackend::createContextInternal ( ::EGLContext sharedContext)
protected

◆ destroyGlobalShareContext()

void KWin::AbstractEglBackend::destroyGlobalShareContext ( )
protected

Definition at line 67 of file abstract_egl_backend.cpp.

◆ deviceId()

dev_t KWin::AbstractEglBackend::deviceId ( ) const

Definition at line 282 of file abstract_egl_backend.cpp.

◆ doneCurrent()

void KWin::AbstractEglBackend::doneCurrent ( )
overridevirtual

Implements KWin::OpenGLBackend.

Definition at line 253 of file abstract_egl_backend.cpp.

◆ eglDisplayObject()

EglDisplay * KWin::AbstractEglBackend::eglDisplayObject ( ) const

Definition at line 371 of file abstract_egl_backend.cpp.

◆ ensureGlobalShareContext()

bool KWin::AbstractEglBackend::ensureGlobalShareContext ( EGLConfig config)
protected

Definition at line 54 of file abstract_egl_backend.cpp.

◆ hasClientExtension()

bool KWin::AbstractEglBackend::hasClientExtension ( const QByteArray & ext) const
protected

Definition at line 239 of file abstract_egl_backend.cpp.

◆ importBufferAsImage() [1/2]

EGLImageKHR KWin::AbstractEglBackend::importBufferAsImage ( GraphicsBuffer * buffer)

Definition at line 314 of file abstract_egl_backend.cpp.

◆ importBufferAsImage() [2/2]

EGLImageKHR KWin::AbstractEglBackend::importBufferAsImage ( GraphicsBuffer * buffer,
int plane,
int format,
const QSize & size )

Definition at line 292 of file abstract_egl_backend.cpp.

◆ importDmaBufAsImage() [1/2]

EGLImageKHR KWin::AbstractEglBackend::importDmaBufAsImage ( const DmaBufAttributes & attributes) const

Definition at line 336 of file abstract_egl_backend.cpp.

◆ importDmaBufAsImage() [2/2]

EGLImageKHR KWin::AbstractEglBackend::importDmaBufAsImage ( const DmaBufAttributes & attributes,
int plane,
int format,
const QSize & size ) const

Definition at line 341 of file abstract_egl_backend.cpp.

◆ importDmaBufAsTexture()

std::shared_ptr< GLTexture > KWin::AbstractEglBackend::importDmaBufAsTexture ( const DmaBufAttributes & attributes) const

Definition at line 346 of file abstract_egl_backend.cpp.

◆ initClientExtensions()

void KWin::AbstractEglBackend::initClientExtensions ( )
protected

Definition at line 225 of file abstract_egl_backend.cpp.

◆ initKWinGL()

void KWin::AbstractEglBackend::initKWinGL ( )
protected

Definition at line 114 of file abstract_egl_backend.cpp.

◆ initWayland()

void KWin::AbstractEglBackend::initWayland ( )
protected

Definition at line 122 of file abstract_egl_backend.cpp.

◆ isOpenGLES()

bool KWin::AbstractEglBackend::isOpenGLES ( ) const
protected

Definition at line 258 of file abstract_egl_backend.cpp.

◆ makeCurrent()

bool KWin::AbstractEglBackend::makeCurrent ( )
overridevirtual

Implements KWin::OpenGLBackend.

Definition at line 244 of file abstract_egl_backend.cpp.

◆ prefer10bpc()

bool KWin::AbstractEglBackend::prefer10bpc ( ) const
virtual

Reimplemented in KWin::EglGbmBackend.

Definition at line 287 of file abstract_egl_backend.cpp.

◆ setEglDisplay()

void KWin::AbstractEglBackend::setEglDisplay ( EglDisplay * display)
protected

Definition at line 100 of file abstract_egl_backend.cpp.

◆ setSurface()

void KWin::AbstractEglBackend::setSurface ( const EGLSurface & surface)
protected

Definition at line 272 of file abstract_egl_backend.cpp.

◆ supportedFormats()

QHash< uint32_t, QList< uint64_t > > KWin::AbstractEglBackend::supportedFormats ( ) const
overridevirtual

Reimplemented from KWin::RenderBackend.

Definition at line 356 of file abstract_egl_backend.cpp.

◆ surface()

EGLSurface KWin::AbstractEglBackend::surface ( ) const

Definition at line 361 of file abstract_egl_backend.cpp.

◆ teardown()

void KWin::AbstractEglBackend::teardown ( )
protected

Definition at line 77 of file abstract_egl_backend.cpp.

◆ testImportBuffer()

bool KWin::AbstractEglBackend::testImportBuffer ( GraphicsBuffer * buffer)
overridevirtual

Reimplemented from KWin::RenderBackend.

Definition at line 351 of file abstract_egl_backend.cpp.

◆ tranches()

QList< LinuxDmaBufV1Feedback::Tranche > KWin::AbstractEglBackend::tranches ( ) const

Definition at line 277 of file abstract_egl_backend.cpp.

Member Data Documentation

◆ m_clientExtensions

QList<QByteArray> KWin::AbstractEglBackend::m_clientExtensions
protected

Definition at line 74 of file abstract_egl_backend.h.

◆ m_context

std::shared_ptr<EglContext> KWin::AbstractEglBackend::m_context
protected

Definition at line 73 of file abstract_egl_backend.h.

◆ m_deviceId

const dev_t KWin::AbstractEglBackend::m_deviceId
protected

Definition at line 75 of file abstract_egl_backend.h.

◆ m_display

EglDisplay* KWin::AbstractEglBackend::m_display = nullptr
protected

Definition at line 71 of file abstract_egl_backend.h.

◆ m_importedBuffers

QHash<std::pair<GraphicsBuffer *, int>, EGLImageKHR> KWin::AbstractEglBackend::m_importedBuffers
protected

Definition at line 77 of file abstract_egl_backend.h.

◆ m_surface

EGLSurface KWin::AbstractEglBackend::m_surface = EGL_NO_SURFACE
protected

Definition at line 72 of file abstract_egl_backend.h.

◆ m_tranches

QList<LinuxDmaBufV1Feedback::Tranche> KWin::AbstractEglBackend::m_tranches
protected

Definition at line 76 of file abstract_egl_backend.h.


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