src/playdate/graphics

Search:
Group by:

Types

BitmapDataObj = object
  width*: int
  height*: int
BitmapView = DisplayFrame | AnyBitmapData
Types that allow the manipulation of individual pixels.
DisplayFrame = distinct ptr array[52 * 240, uint8]
The raw bytes in a display frame buffer.
LCDBitmap = object
  case
  of true:
  of false:
LCDBitmapTable = ref LCDBitmapTableObj
LCDVideoPlayer = ref LCDVideoPlayerObj
TextAlignment = enum
  kTextAlignmentLeft, kTextAlignmentCenter, kTextAlignmentRight
TextInRectResult = object
  width*: int
  height*: int
  textWasTruncated*: bool

Procs

proc `$`(view: BitmapView | LCDBitmap): string {....raises: [].}
Render a string version of a bitmap view
proc `==`(bitmap: LCDBitmap; point: LCDBitmapPtr): bool {....raises: [], tags: [],
    forbids: [].}
proc clear(this: LCDBitmap; color: LCDColor) {....raises: [].}
proc clear(view: var BitmapView; x, y: int) {....raises: [].}
Clears the color from a pixel at the given coordinate.
proc copy(this: LCDBitmap): LCDBitmap {....raises: [], tags: [RootEffect],
                                        forbids: [].}
proc copyFrameBufferBitmap(this: ptr PlaydateGraphics): LCDBitmap {....raises: [],
    tags: [RootEffect], forbids: [].}
proc createPattern(this: ptr PlaydateGraphics; bitmap: LCDBitmap; x: int; y: int): LCDPattern {.
    ...raises: [], tags: [RootEffect], forbids: [].}
proc draw(this: LCDBitmap; x: int; y: int; flip: LCDBitmapFlip) {....raises: [],
    tags: [RootEffect], forbids: [].}
proc drawRotated(this: LCDBitmap; x: int; y: int; rotation: float32;
                 centerX: float32; centerY: float32; xScale: float32;
                 yScale: float32) {....raises: [], tags: [RootEffect], forbids: [].}
proc drawScaled(this: LCDBitmap; x: int; y: int; xScale: float32;
                yScale: float32) {....raises: [], tags: [RootEffect], forbids: [].}
proc drawText(this: ptr PlaydateGraphics; text: string; x, y: int;
              encoding: PDStringEncoding = kUTF8Encoding): int {.discardable,
    ...raises: [], tags: [RootEffect], forbids: [].}
proc drawTextAligned(this: LCDFont; text: string; x, y: int;
                     alignment: TextAlignment = kTextAlignmentCenter;
                     lineHeightAdjustment: int = 0) {....raises: [],
    tags: [RootEffect], forbids: [].}
proc drawTextAligned(this: ptr PlaydateGraphics; text: string; x, y: int;
                     alignment: TextAlignment = kTextAlignmentCenter;
                     lineHeightAdjustment: int = 0) {....raises: [],
    tags: [RootEffect], forbids: [].}
proc drawTextInRect(this: LCDFont; text: string; x, y, width, height: int;
                    lineHeightAdjustment: int = 0;
                    truncationString: string = "...";
                    alignment: TextAlignment = kTextAlignmentLeft): TextInRectResult {.
    discardable, ...raises: [], tags: [RootEffect], forbids: [].}
proc drawTextInRect(this: ptr PlaydateGraphics; text: string;
                    x, y, width, height: int; lineHeightAdjustment: int = 0;
                    truncationString: string = "...";
                    alignment: TextAlignment = kTextAlignmentLeft): TextInRectResult {.
    discardable, ...raises: [], tags: [RootEffect], forbids: [].}
proc drawTiled(this: LCDBitmap; x: int; y: int; width: int; height: int;
               flip: LCDBitmapFlip) {....raises: [], tags: [RootEffect],
                                      forbids: [].}
proc fillPolygon[Int32x2](this: ptr PlaydateGraphics;
                          points: openArray[Int32x2]; color: LCDColor;
                          fillRule: LCDPolygonFillRule) {....raises: [].}
proc get(this: LCDBitmap; x, y: int): LCDSolidColor {....raises: [],
    tags: [RootEffect], forbids: [].}
Reads the color of a bitmap, taking into account the color mask
proc get(view: BitmapView; x, y: int): LCDSolidColor {....raises: [].}
Returns the color of a pixel at the given coordinate.
proc getBitmap(this: LCDBitmapTable; index: int): LCDBitmap {....raises: [],
    tags: [RootEffect], forbids: [].}
proc getBitmapMask(this: LCDBitmap): LCDBitmap {....raises: [], tags: [RootEffect],
    forbids: [].}
proc getBitmapTableInfo(this: LCDBitmapTable): tuple[count: int, cellsWide: int] {.
    ...raises: [], tags: [RootEffect], forbids: [].}
proc getContext(this: LCDVideoPlayer): LCDBitmap {....raises: [],
    tags: [RootEffect], forbids: [].}
proc getData(this: LCDBitmap): BitmapData {....raises: [], tags: [RootEffect],
    forbids: [].}
Fetch the underlying bitmap data for an image.
proc getDataObj(this: LCDBitmap): BitmapDataObj {....raises: [],
    tags: [RootEffect], forbids: [].}
Fetch the underlying bitmap data for an image.
proc getDebugBitmap(this: ptr PlaydateGraphics): LCDBitmap {....raises: [],
    tags: [RootEffect], forbids: [].}
proc getDisplayBufferBitmap(this: ptr PlaydateGraphics): LCDBitmap {....raises: [],
    tags: [RootEffect], forbids: [].}
proc getDisplayFrame(this: ptr PlaydateGraphics): DisplayFrame {....raises: [],
    tags: [RootEffect], forbids: [].}
proc getFont(this: ptr PlaydateGraphics): LCDFont {....raises: [], tags: [],
    forbids: [].}
proc getFontHeight(this: LCDFont): uint {....raises: [], tags: [RootEffect],
    forbids: [].}
proc getFontPage(this: LCDFont; c: char): LCDFontPage {....raises: [],
    tags: [RootEffect], forbids: [].}
proc getFrame(this: ptr PlaydateGraphics): DisplayFrame {....raises: [],
    tags: [RootEffect], forbids: [].}
proc getGlyphKerning(this: LCDFontGlyph; glyphCode: char; nextCode: char): int {.
    ...raises: [], tags: [RootEffect], forbids: [].}
proc getInfo(this: LCDVideoPlayer): tuple[width: int, height: int,
    frameRate: float32, frameCount: int, currentFrame: int] {....raises: [],
    tags: [RootEffect], forbids: [].}
proc getPageGlyph(this: LCDFontPage; c: char): LCDFontGlyph {....raises: [],
    tags: [RootEffect], forbids: [].}
proc getSize(this: LCDBitmap): tuple[width: int, height: int] {....raises: [],
    tags: [RootEffect], forbids: [].}
proc getTextSize(this: LCDFont; text: string; lineHeightAdjustment: int = 0): tuple[
    width: int, height: int] {....raises: [], tags: [RootEffect], forbids: [].}
proc getTextSizeInRect(this: LCDFont; text: string; x, y, width, height: int;
                       lineHeightAdjustment: int = 0;
                       truncationString: string = "...";
                       alignment: TextAlignment = kTextAlignmentLeft): TextInRectResult {.
    ...raises: [], tags: [RootEffect], forbids: [].}
proc getTextSizeInRect(this: ptr PlaydateGraphics; text: string;
                       x, y, width, height: int; lineHeightAdjustment: int = 0;
                       truncationString: string = "...";
                       alignment: TextAlignment = kTextAlignmentLeft): TextInRectResult {.
    ...raises: [], tags: [RootEffect], forbids: [].}
proc getTextWidth(this: LCDFont; text: string; len: int = text.len;
                  encoding: PDStringEncoding = kUTF8Encoding; tracking: int = 0): int {.
    ...raises: [], tags: [RootEffect], forbids: [].}
proc height(frame: DisplayFrame): auto {.inline, ...raises: [], tags: [],
    forbids: [].}
Return the height of the display frame buffer.
proc height(this: LCDBitmap): int {....raises: [], tags: [RootEffect], forbids: [].}
proc isNil(bitmap: LCDBitmap): bool {....raises: [], tags: [], forbids: [].}
proc load(this: LCDBitmap; path: string) {....raises: [IOError], raises: [],
    tags: [RootEffect], forbids: [].}
proc load(this: LCDBitmapTable; path: string) {....raises: [IOError], raises: [],
    tags: [RootEffect], forbids: [].}
proc makeFont(this: LCDFontData; wide: bool): LCDFont {....raises: [],
    tags: [RootEffect], forbids: [].}
proc newBitmap(this: ptr PlaydateGraphics; path: string): LCDBitmap {.
    ...raises: [IOError], raises: [], tags: [RootEffect], forbids: [].}
proc newBitmap(this: ptr PlaydateGraphics; width: int; height: int;
               color: LCDColor): LCDBitmap {....raises: [].}
proc newBitmapTable(this: ptr PlaydateGraphics; count: int; width: int;
                    height: int): LCDBitmapTable {....raises: [],
    tags: [RootEffect], forbids: [].}
proc newBitmapTable(this: ptr PlaydateGraphics; path: string): LCDBitmapTable {.
    ...raises: [IOError], raises: [], tags: [RootEffect], forbids: [].}
proc newFont(this: ptr PlaydateGraphics; path: string): LCDFont {.
    ...raises: [IOError], raises: [], tags: [RootEffect], forbids: [].}
proc newVideoPlayer(this: ptr PlaydateVideo; path: string): LCDVideoPlayer {.
    ...raises: [IOError], raises: [], tags: [RootEffect], forbids: [].}
proc pushContext(this: ptr PlaydateGraphics; target: LCDBitmap) {....raises: [],
    tags: [RootEffect], forbids: [].}
proc renderFrame(this: LCDVideoPlayer; index: int) {....raises: [CatchableError],
    raises: [], tags: [RootEffect], forbids: [].}
proc resource(bitmap: LCDBitmap): LCDBitmapPtr {....raises: [], tags: [],
    forbids: [].}
proc rotated(this: LCDBitmap; rotation: float32; scale: float32): tuple[
    bitmap: LCDBitmap, allocatedSize: int] {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
proc rotated(this: LCDBitmap; rotation: float32; xScale: float32;
             yScale: float32): tuple[bitmap: LCDBitmap, allocatedSize: int] {.
    ...raises: [], tags: [RootEffect], forbids: [].}
proc set(this: var LCDBitmap; x, y: int; color: LCDSolidColor = kColorBlack) {.
    ...raises: [], tags: [RootEffect], forbids: [].}
Reads the color of a bitmap, taking into account the color mask
proc set(view: var BitmapView; x, y: int) {....raises: [].}
Sets the pixel at x, y to black.
proc set(view: var BitmapView; x, y: int; color: LCDSolidColor) {....raises: [].}
Sets the specific color of a pixel at the given coordinate.
proc setBitmapMask(this: LCDBitmap; mask: LCDBitmap = playdate.graphics.newBitmap(
    this.width, this.height, kColorWhite)): int {....raises: [],
    tags: [RootEffect], forbids: [].}
proc setContext(this: LCDVideoPlayer; context: LCDBitmap) {.
    ...raises: [CatchableError], raises: [], tags: [RootEffect], forbids: [].}
proc setFont(this: ptr PlaydateGraphics; font: LCDFont) {....raises: [],
    tags: [RootEffect], forbids: [].}
proc setStencilImage(this: ptr PlaydateGraphics; bitmap: LCDBitmap;
                     tile: bool = false) {....raises: [], tags: [RootEffect],
    forbids: [].}
proc tileBitmap(this: LCDBitmap; x: int; y: int; width: int; height: int;
                flip: LCDBitmapFlip) {....raises: [], tags: [RootEffect],
                                       forbids: [].}
proc useScreenContext(this: LCDVideoPlayer) {....raises: [], tags: [RootEffect],
    forbids: [].}
proc width(frame: DisplayFrame): auto {.inline, ...raises: [], tags: [],
                                        forbids: [].}
Return the width of the display frame buffer.
proc width(this: LCDBitmap): int {....raises: [], tags: [RootEffect], forbids: [].}

Converters

converter bitmapPtr(point: LCDBitmapPtr): auto {....raises: [], tags: [],
    forbids: [].}