Louvre  v2.3.2-1
C++ library for Wayland compositors
Classes | Typedefs | Enumerations | Functions
Louvre Namespace Reference

Namespaces. More...

Classes

class  LAnimation
 Time-based animations. More...
 
class  LBitset
 Compact way of storing and managing conditions or states. More...
 
struct  LBox
 Structure representing a 2D box. More...
 
class  LClient
 Representation of a Wayland client. More...
 
class  LClientCursor
 Encapsulates parameters used in a set cursor request. More...
 
class  LClipboard
 Clipboard manager. More...
 
struct  LRGBF
 RGB color with floating-point components. More...
 
struct  LRGBAF
 RGBA color with floating-point components. More...
 
struct  LBlendFunc
 Color blending function. More...
 
class  LCompositor
 Louvre's core and objects factory. More...
 
class  LCursor
 Utility class for rendering cursors. More...
 
class  LDND
 Class for handling drag & drop sessions. More...
 
class  LExclusiveZone
 Exclusive zone within an LOutput. More...
 
class  LFactoryObject
 Base class for Factory objects. More...
 
class  LGammaTable
 Gamma correction table for outputs. More...
 
class  LGlobal
 A Wayland protocol global. More...
 
class  LInputDevice
 Input Device. More...
 
class  LKeyboard
 Class for handling keyboard events. More...
 
class  LLauncher
 Utility for launching applications safely. More...
 
class  LLog
 Debugging information. More...
 
struct  LMargins
 Structure representing left, top, right and bottom margins. More...
 
class  LWeak
 Weak reference to an LObject. More...
 
class  LPointTemplate
 Template for 2D vectors. More...
 
class  LRectTemplate
 Template for 4D vectors. More...
 
struct  LVersion
 Structure representing a version in the format major.minor.patch-build. More...
 
class  LObject
 Base class for Louvre objects. More...
 
class  LOpenGL
 OpenGL utility functions. More...
 
class  LOutput
 A display rendering interface. More...
 
class  LOutputMode
 Output resolution and refresh rate. More...
 
class  LPainter
 Basic 2D rendering utility. More...
 
class  LPointer
 Class for handling events generated by pointing devices. More...
 
class  LRegion
 Collection of non-overlapping rectangles. More...
 
class  LResource
 Wrapper for native wl_resource structs. More...
 
class  LScreenshotRequest
 Request to capture an LOutput frame. More...
 
class  LSeat
 Group of input and output devices. More...
 
class  LSessionLockManager
 Manages session lock requests and state changes. More...
 
class  LSurface
 A client "window". More...
 
struct  LDMAFormat
 Structure representing a DMA format and modifier. More...
 
struct  LDMAPlanes
 Direct Memory Access (DMA) planes. More...
 
class  LTexture
 OpenGL texture abstraction. More...
 
class  LTime
 Time utilities. More...
 
class  LTimer
 Delayed callbacks. More...
 
class  LTouch
 Class for handling touch input events. More...
 
class  LTouchPoint
 Touch point within a touch device. More...
 
class  LXCursor
 An XCursor icon. More...
 
class  LEvent
 Base class for events. More...
 
class  LInputEvent
 Base class for input events. More...
 
class  LKeyboardEnterEvent
 Event generated when a surface or view gains keyboard focus. More...
 
class  LKeyboardEvent
 Base class for keyboard events. More...
 
class  LKeyboardKeyEvent
 Keyboard key event. More...
 
class  LKeyboardLeaveEvent
 Event generated when a surface or view loses keyboard focus. More...
 
class  LKeyboardModifiersEvent
 Keyboard modifiers event. More...
 
class  LPointerButtonEvent
 Pointer button event. More...
 
class  LPointerEnterEvent
 Event generated when a surface or view gains pointer focus. More...
 
class  LPointerEvent
 Base class for pointer events. More...
 
class  LPointerHoldBeginEvent
 Pointer hold begin gesture event. More...
 
class  LPointerHoldEndEvent
 Pointer hold end gesture event. More...
 
class  LPointerLeaveEvent
 Event generated when a surface or view loses pointer focus. More...
 
class  LPointerMoveEvent
 Pointer movement event. More...
 
class  LPointerPinchBeginEvent
 Pointer pinch begin gesture event. More...
 
class  LPointerPinchEndEvent
 Pointer pinch end gesture event. More...
 
class  LPointerPinchUpdateEvent
 Pointer pinch update gesture event. More...
 
class  LPointerScrollEvent
 Pointer scroll event. More...
 
class  LPointerSwipeBeginEvent
 Pointer swipe begin gesture event. More...
 
class  LPointerSwipeEndEvent
 Pointer swipe end gesture event. More...
 
class  LPointerSwipeUpdateEvent
 Pointer swipe update gesture event. More...
 
class  LTouchCancelEvent
 Touch cancel event. More...
 
class  LTouchDownEvent
 Touch down event. More...
 
class  LTouchEvent
 Base class for touch events. More...
 
class  LTouchFrameEvent
 Represents a touch frame event. More...
 
class  LTouchMoveEvent
 Touch move event. More...
 
class  LTouchUpEvent
 Touch up event. More...
 
class  LFramebuffer
 Base class for LPainter framebuffers. More...
 
class  LFramebufferWrapper
 Wrapper for a native OpenGL framebuffer. More...
 
class  LOutputFramebuffer
 An output framebuffer. More...
 
class  LRenderBuffer
 Represents a custom render destination framebuffer. More...
 
class  LBaseSurfaceRole
 Base class for surface roles. More...
 
class  LCursorRole
 Cursor role for surfaces. More...
 
class  LDNDIconRole
 Drag & drop icon role for surfaces. More...
 
class  LForeignToplevelController
 Foreign Toplevel Controller. More...
 
class  LLayerRole
 Layer role for surfaces. More...
 
class  LPopupRole
 Popup role for surfaces. More...
 
class  LPositioner
 Positioning rules for LPopupRole surfaces. More...
 
class  LSessionLockRole
 Surface displayed during a session lock. More...
 
class  LSubsurfaceRole
 Subsurface role for surfaces. More...
 
class  LToplevelMoveSession
 Toplevel move session utility. More...
 
class  LToplevelResizeSession
 Toplevel resize session utility. More...
 
class  LToplevelRole
 Toplevel role for surfaces. More...
 
class  LLayerView
 Container of views. More...
 
class  LScene
 Scene. More...
 
class  LSceneTouchPoint
 Touch point managed within an LScene. More...
 
class  LSceneView
 View for rendering other views. More...
 
class  LSolidColorView
 View for displaying solid color rects. More...
 
class  LSurfaceView
 View for displaying surfaces. More...
 
class  LTextureView
 View for displaying textures. More...
 
class  LView
 Base class for LScene views. More...
 

Typedefs

typedef uint64_t UInt64
 64 bits unsigned integer More...
 
typedef int64_t Int64
 64 bits signed integer More...
 
typedef uint32_t UInt32
 32 bits unsigned integer More...
 
typedef int32_t Int32
 32 bits signed integer More...
 
typedef uint16_t UInt16
 16 bits unsigned integer More...
 
typedef int16_t Int16
 16 bits signed integer More...
 
typedef uint8_t UInt8
 8 bits unsigned integer More...
 
typedef int8_t Int8
 8 bits signed integer More...
 
typedef unsigned char UChar8
 8 bits unsigned integer More...
 
typedef char Char8
 8 bits signed integer More...
 
typedef double Float64
 64 bits float More...
 
typedef float Float32
 32 bits float More...
 
typedef wl_fixed_t Float24
 24 bits Wayland float More...
 
typedef uintptr_t UIntPtr
 Unsigned integer capable of holding a pointer. More...
 
using LPoint = LPointTemplate< Int32 >
 2D vector of 32 bits integers More...
 
using LSize = LPoint
 2D vector of 32 bits integers More...
 
using LPointF = LPointTemplate< Float32 >
 2D vector of 32 bits floats More...
 
using LSizeF = LPointF
 2D vector of 32 bits floats More...
 
using LRect = LRectTemplate< Int32 >
 4D vector of 32 bits integers More...
 
using LRectF = LRectTemplate< Float32 >
 4D vector of 32 bits floats More...
 

Enumerations

enum  LContentType
 Content Type Hint. More...
 
enum  LEdge : UInt32
 Edge flags. More...
 
enum  LSurfaceLayer
 Surface layers. More...
 
enum  LGraphicBackendID : UInt32
 Graphic backend IDs. More...
 
enum  LInputBackendID : UInt32
 Input backend IDs. More...
 
enum class  LTransform : Int32
 Transforms. More...
 

Functions

constexpr bool edgeIsCorner (LBitset< LEdge > edges) noexcept
 Checks if the given edges form a corner by being orthogonal. More...
 
LCompositorcompositor () noexcept
 Gets the static LCompositor instance. More...
 
LCursorcursor () noexcept
 Gets the compositor's cursor. More...
 
LSeatseat () noexcept
 Gets the compositor's seat. More...
 
LSessionLockManagersessionLockManager () noexcept
 Gets the compositor's session lock manager. More...
 

Detailed Description

Namespaces.


Class Documentation

◆ Louvre::LBox

struct Louvre::LBox

Structure representing a 2D box.

The LBox struct defines a 2D box using four integer coordinates (x1, y1, x2, y2). It is typically used to represent bounding boxes or rectangular regions in 2D space.

Class Members
Int32 x1 The x-coordinate of the top-left corner of the box.
Int32 y1 The y-coordinate of the top-left corner of the box.
Int32 x2 The x-coordinate of the bottom-right corner of the box.
Int32 y2 The y-coordinate of the bottom-right corner of the box.

◆ Louvre::LBlendFunc

struct Louvre::LBlendFunc

Color blending function.

OpenGL blend function. Refer to the documentation of glBlendFuncSeparate() for more information.

Class Members
GLenum sRGBFactor Source RGB factor for blending.
GLenum dRGBFactor Destination RGB factor for blending.
GLenum sAlphaFactor Source alpha factor for blending.
GLenum dAlphaFactor Destination alpha factor for blendin.

◆ Louvre::LMargins

struct Louvre::LMargins

Structure representing left, top, right and bottom margins.

Class Members
Int32 left The left margin.
Int32 top The top margin.
Int32 right The right margin.
Int32 bottom The bottom margin.

◆ Louvre::LVersion

struct Louvre::LVersion

Structure representing a version in the format major.minor.patch-build.

Class Members
UInt32 major Major version.
UInt32 minor Minor version.
UInt32 patch Patch version.
UInt32 build Build number.

◆ Louvre::LDMAFormat

struct Louvre::LDMAFormat

Structure representing a DMA format and modifier.

The LDMAFormat struct contains information about a DMA format and modifier.
It is used to describe the format and memory layout of DMA planes used for texture generation.

Class Members
UInt32 format The DRM format of the DMA plane.
UInt64 modifier The DRM modifier value specifying the memory layout.

◆ Louvre::LDMAPlanes

struct Louvre::LDMAPlanes

Direct Memory Access (DMA) planes.

Use this struct to import DMA buffers with LTexture.

Class Members
UInt32 width Width of the buffer in pixels.
UInt32 height Height of the buffer in pixels.
UInt32 format DRM format of the buffer.
UInt32 num_fds Number of file descriptors.
Int32 fds[4] Array of file descriptors associated with each DMA plane.
UInt32 strides[4] Array of strides for each DMA plane.
UInt32 offsets[4] Array of offsets for each DMA plane.
UInt64 modifiers[4] Array of modifiers for each DMA plane.

Typedef Documentation

◆ UInt64

typedef uint64_t UInt64

64 bits unsigned integer

◆ Int64

typedef int64_t Int64

64 bits signed integer

◆ UInt32

typedef uint32_t UInt32

32 bits unsigned integer

◆ Int32

typedef int32_t Int32

32 bits signed integer

◆ UInt16

typedef uint16_t UInt16

16 bits unsigned integer

◆ Int16

typedef int16_t Int16

16 bits signed integer

◆ UInt8

typedef uint8_t UInt8

8 bits unsigned integer

◆ Int8

typedef int8_t Int8

8 bits signed integer

◆ UChar8

typedef unsigned char UChar8

8 bits unsigned integer

◆ Char8

typedef char Char8

8 bits signed integer

◆ Float64

typedef double Float64

64 bits float

◆ Float32

typedef float Float32

32 bits float

◆ Float24

typedef wl_fixed_t Float24

24 bits Wayland float

◆ UIntPtr

typedef uintptr_t UIntPtr

Unsigned integer capable of holding a pointer.

◆ LPoint

2D vector of 32 bits integers

◆ LSize

using LSize = LPoint

2D vector of 32 bits integers

◆ LPointF

2D vector of 32 bits floats

◆ LSizeF

using LSizeF = LPointF

2D vector of 32 bits floats

◆ LRect

4D vector of 32 bits integers

◆ LRectF

4D vector of 32 bits floats

Enumeration Type Documentation

◆ LContentType

Content Type Hint.

Hint indicating the type of content being displayed by an LSurface or LOutput.

See also
LOutput::contentType() and LOutput::setContentType().
LSurface::contentType() and LSurface::contentTypeChanged().
Enumerator
LContentTypeNone 

The content doesn't fit into one of the other categories.

LContentTypePhoto 

Digital still pictures that may be presented with minimal processing.

LContentTypeVideo 

Video or animation that may be presented with more accurate timing to avoid stutter. Where scaling is needed, scaling methods more appropriate for video may be used.

LContentTypeGame 

A running game. Its content may be presented with reduced latency.

◆ LEdge

enum LEdge : UInt32

Edge flags.

Enumerator
LEdgeNone 

No edge.

LEdgeTop 

The top edge.

LEdgeBottom 

The bottom edge.

LEdgeLeft 

The left edge.

LEdgeRight 

The right edge.

◆ LSurfaceLayer

Surface layers.

This enum represents possible layers for a surface, indicating its position in the Z-axis stacking order.

Enumerator
LLayerBackground 

Background layer.

LLayerBottom 

Bottom layer.

LLayerMiddle 

Middle layer.

LLayerTop 

Top layer.

LLayerOverlay 

Overlay layer.

◆ LGraphicBackendID

Graphic backend IDs.

Use LCompositor::graphicBackendId() to identify the currently loaded backend.

Enumerator
LGraphicBackendDRM 

ID for the DRM graphic backend.

LGraphicBackendWayland 

ID for the Wayland graphic backend.

◆ LInputBackendID

Input backend IDs.

Use LCompositor::inputBackendId() to identify the currently loaded backend.

Enumerator
LInputBackendLibinput 

ID for the Libinput input backend.

LInputBackendWayland 

ID for the Wayland input backend.

◆ LTransform

enum LTransform : Int32
strong

Transforms.

Enumerator
Normal 

No transformation.

Rotated90 

Rotate 90 degrees counter-clockwise.

Rotated180 

Rotate 180 degrees counter-clockwise.

Rotated270 

Rotate 270 degrees counter-clockwise.

Flipped 

Flipped (swap left and right sides)

Flipped90 

Flip and rotate 90 degrees counter-clockwise.

Flipped180 

Flip and rotate 180 degrees counter-clockwise.

Flipped270 

Flip and rotate 270 degrees counter-clockwise.

Function Documentation

◆ edgeIsCorner()

constexpr bool Louvre::edgeIsCorner ( LBitset< LEdge edges)
inlineconstexprnoexcept

Checks if the given edges form a corner by being orthogonal.

This function verifies if the provided bitset of edges corresponds to one of the four possible corner configurations: (Top-Left, Top-Right, Bottom-Left, Bottom-Right).

Parameters
edgesA bitset representing the edges.
Returns
true if the edges form a corner, false otherwise.

◆ compositor()

LCompositor * compositor ( )
noexcept

Gets the static LCompositor instance.

This method provides access to the single LCompositor instance that can exist per process.

Returns
A pointer to the LCompositor instance or nullptr if not yet created.

◆ cursor()

LCursor * cursor ( )
noexcept

Gets the compositor's cursor.

Warning
Must be accessed within or after the LCompositor::initialized() or LCompositor::cursorInitialized() events.
Returns
A pointer to the LCursor instance or nullptr if not yet initialized.

◆ seat()

LSeat * seat ( )
noexcept

Gets the compositor's seat.

The seat provides access to the LClipboard, LDND, LPointer, LKeyboard, LTouch, and LOutput instances.

Warning
Must be accessed within or after the LCompositor::initialized() event.
Returns
A pointer to the LSeat instance.

◆ sessionLockManager()

LSessionLockManager * sessionLockManager ( )
noexcept

Gets the compositor's session lock manager.

Warning
Must be accessed within or after the LCompositor::initialized() event.
Returns
A pointer to the LSessionLockManager instance.