Livt packages

Eccelerators.Matrix

Version 1.0.1

Reusable RGB matrix drawing, color conversion, animation pacing, and HUB75 display components for Livt.

Published files (48)

src/IMatrixRenderer.lvt

namespace Eccelerators.Matrix

/**
 * Scheduled complete-image rendering in one shared clock/reset context.
 * One serialized caller borrows the display, bitmap and converter for the call.
 * Keep source selection and converter settings stable until completion.
 * Reset cancels pending rendering through the shared context.
 */
interface IMatrixRenderer
{
	/**
	 * Clear the back image, draw at the origin with clipping and color conversion,
	 * then present. Return the display's presentation result after completion.
	 * Uncovered pixels remain black. Implementations may pace before presentation.
	 */
	fn Render(display: IMatrixDisplay, bitmap: IMatrixBitmap, converter: IColorConverter) bool

	/** Repeat one bitmap from the origin to fill the complete logical canvas. */
	fn RenderTiled(display: IMatrixDisplay, bitmap: IMatrixBitmap, converter: IColorConverter) bool

	/** Draw one bitmap into a selected panel tile and leave other panels black. */
	fn RenderPanel(display: IMatrixDisplay, layout: IMatrixLayout, panelX: int, panelY: int,
		bitmap: IMatrixBitmap, converter: IColorConverter) bool
}