Sunshine master
Self-hosted game stream host for Moonlight.
platf::kms::wrapper_fb Class Reference

RAII wrapper for DRM framebuffer metadata and GEM handles. More...

Public Member Functions

 wrapper_fb (uint32_t card_fd, drmModeFB *fb)
 Wrap legacy DRM framebuffer metadata.
 
 wrapper_fb (uint32_t card_fd, drmModeFB2 *fb2)
 Wrap DRM framebuffer metadata with per-plane modifiers.
 

Public Attributes

uint32_t card_fd
 DRM card file descriptor that owns the framebuffer ID.
 
drmModeFB * fb = nullptr
 Legacy DRM framebuffer metadata when modifier data is unavailable.
 
drmModeFB2 * fb2 = nullptr
 DRM framebuffer metadata with modifier support.
 
uint32_t fb_id
 DRM framebuffer ID being captured.
 
uint32_t handles [4]
 GEM handles for each framebuffer plane.
 
uint32_t height
 Framebuffer height in pixels.
 
uint64_t modifier
 DRM format modifier describing framebuffer memory layout.
 
uint32_t offsets [4]
 Byte offset to the first pixel for each framebuffer plane.
 
uint32_t pitches [4]
 Row stride in bytes for each framebuffer plane.
 
uint32_t pixel_format
 DRM fourcc pixel format for the framebuffer.
 
uint32_t width
 Framebuffer width in pixels.
 

Detailed Description

RAII wrapper for DRM framebuffer metadata and GEM handles.

Constructor & Destructor Documentation

◆ wrapper_fb() [1/2]

platf::kms::wrapper_fb::wrapper_fb ( uint32_t card_fd,
drmModeFB * fb )
inline

Wrap legacy DRM framebuffer metadata.

Parameters
card_fdDRM card file descriptor used to close GEM handles.
fbLegacy framebuffer metadata returned by drmModeGetFB.

◆ wrapper_fb() [2/2]

platf::kms::wrapper_fb::wrapper_fb ( uint32_t card_fd,
drmModeFB2 * fb2 )
inline

Wrap DRM framebuffer metadata with per-plane modifiers.

Parameters
card_fdDRM card file descriptor used to close GEM handles.
fb2Framebuffer metadata returned by drmModeGetFB2.

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