Skip to main content

ParallelDisplayController Class

Package: GHIElectronics.Endpoint.Devices.Display
Namespace: GHIElectronics.Endpoint.Devices.Display

The built-in display driven by the SoC's parallel RGB LCD controller (DRM "DPI" / parallel-RGB). Opens /dev/fb0 inside ParallelDisplayController.Enable, respects the real framebuffer stride, converts source pixel formats to the panel's bit depth, and blits with ParallelDisplayController.Flush.

class ParallelDisplayController(DisplayController): ...

Constructors​

ParallelDisplayController()​

def __init__(self):

Properties​

Height​

Height: int # @property

Returns int

IsEnabled​

IsEnabled: bool # @property

Returns bool

Width​

Width: int # @property

Returns int

Methods​

Disable()​

def Disable(self) -> None:

Closes /dev/fb0 and turns the parallel-RGB controller off.

Dispose()​

def Dispose(self) -> None:

Calls ParallelDisplayController.Disable (best-effort - swallows any exception).

Enable()​

def Enable(self) -> None:

Programs the parallel-RGB controller from /config/display.json, opens /dev/fb0, and reads the live stride and bits-per-pixel from /sys/class/graphics/fb0 (overriding the configured values if the kernel pinned a different format).

Flush(ReadOnlySpan<byte> pixels, PixelFormat format, int x, int y, int width, int height)​

def Flush(self, pixels: ReadOnlySpan[int], format: PixelFormat, x: int, y: int, width: int, height: int) -> None:

Writes pixels to the region (x, y, width, height), converting from format to the framebuffer's native depth (16, 24, or 32 bpp) one row at a time.

ParameterTypeDescription
pixelsReadOnlySpan<byte>Source pixels in format, laid out row by row with no padding.
formatPixelFormatSource pixel format: Rgb565, Rgb24, Rgb32 or Argb32.
xintLeft edge of the target region in pixels.
yintTop edge of the target region in pixels.
widthintRegion width in pixels.
heightintRegion height in pixels.