Skip to main content

Interface IPixelBuffer

IPixelBuffer provides a standard interface for representing the display state of a device capable of displaying pixels. It specifies methods for performing common primitive operations on a buffer of pixel data.

Conceptually, implementing classes should:

  1. Specify a bit depth for pixels
  2. Specify a color mode
  3. Preserve the display state as a byte[] in the PixelBuffer
  4. Optimize primitive drawing methods for the bit depth of pixels
  5. Be abstracted/decoupled from a specific device driver
Assembly: Meadow.Contracts.dll
View Source
Declaration
public interface IPixelBuffer

Properties

Width

The width of the pixel buffer

View Source
Declaration
int Width { get; }

Height

The height of the pixel buffer

View Source
Declaration
int Height { get; }

ColorMode

The ColorMode of the pixel buffer

View Source
Declaration
ColorMode ColorMode { get; }

BitDepth

The BitDepth of the chosen ColorMode

View Source
Declaration
int BitDepth { get; }

ByteCount

The number of bytes in this pixel buffer

View Source
Declaration
int ByteCount { get; }

Buffer

The byte array that holds all pixel data

View Source
Declaration
byte[] Buffer { get; }

Methods

SetPixel(int, int, Color)

Set the color of the pixel at the provided coordinates

View Source
Declaration
void SetPixel(int x, int y, Color color)
Parameters
TypeNameDescription
System.Int32xX coordinate of the pixel: 0,0 at top left
System.Int32yY coordinate of the pixel: 0,0 at top left
Meadow.ColorcolorThe pixel color

GetPixel(int, int)

Get the color of a pixel - may be scaled based on buffer color depth

View Source
Declaration
Color GetPixel(int x, int y)
Returns

Meadow.Color

Parameters
TypeNameDescription
System.Int32xX coordinate of the pixel: 0,0 at top left
System.Int32yY coordinate of the pixel: 0,0 at top left

InvertPixel(int, int)

Invert the color of a pixel at the provided location

View Source
Declaration
void InvertPixel(int x, int y)
Parameters
TypeNameDescription
System.Int32xThe X coord to invert
System.Int32yThe Y coord to invert

WriteBuffer(int, int, IPixelBuffer)

Writes another pixel buffer into this buffer.

View Source
Declaration
void WriteBuffer(int originX, int originY, IPixelBuffer buffer)
Parameters
TypeNameDescription
System.Int32originXThe X origin to start writing
System.Int32originYThe Y origin to start writing
Meadow.Peripherals.Displays.IPixelBufferbufferThe buffer to write into this buffer

Fill(Color)

Fills the buffer with the provided color

View Source
Declaration
void Fill(Color color)
Parameters
TypeNameDescription
Meadow.ColorcolorThe color to fill

Fill(int, int, int, int, Color)

Fills part of the buffer with the provided color

View Source
Declaration
void Fill(int originX, int originY, int width, int height, Color color)
Parameters
TypeNameDescription
System.Int32originXThe X coord to start filling
System.Int32originYThe Y coord to start filling
System.Int32widthThe width to fill
System.Int32heightThe height to fill
Meadow.ColorcolorThe color to fill

Clear()

Clears the buffer (writes 0s to the byte array)

View Source
Declaration
void Clear()

Clear(int, int, int, int)

Clears a region of the buffer (writes 0s to the byte array)

View Source
Declaration
void Clear(int originX, int originY, int width, int height)
Parameters
TypeNameDescription
System.Int32originXThe X coord to start
System.Int32originYThe Y coord to start
System.Int32widthThe width of the region to clear
System.Int32heightThe height of the region to clear