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 : public DisplayController {};

Constructors​

ParallelDisplayController()​

ParallelDisplayController();

Properties​

Height​

int32_t Height() const;

Returns int

IsEnabled​

bool IsEnabled() const;

Returns bool

Width​

int32_t Width() const;

Returns int

Methods​

Disable()​

virtual void Disable() override;

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

Dispose()​

virtual void Dispose() override;

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

Enable()​

virtual void Enable() override;

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)​

virtual void Flush(ReadOnlySpan<uint8_t> pixels, PixelFormat format, int32_t x, int32_t y, int32_t width, int32_t height) override;

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.