src/playdate/bindings/graphics

Search:
Group by:

Types

LCDBitmapDrawMode {.importc: "LCDBitmapDrawMode", header: "pd_api.h".} = enum
  kDrawModeCopy, kDrawModeWhiteTransparent, kDrawModeBlackTransparent,
  kDrawModeFillWhite, kDrawModeFillBlack, kDrawModeXOR, kDrawModeNXOR,
  kDrawModeInverted
LCDBitmapFlip {.importc: "LCDBitmapFlip", header: "pd_api.h".} = enum
  kBitmapUnflipped, kBitmapFlippedX, kBitmapFlippedY, kBitmapFlippedXY
LCDColor = LCDSolidColor | LCDPattern
Either a solid color or a pattern.
LCDFont = ref LCDFontObj
LCDFontData = LCDFontDataPtr
LCDFontGlyph = ref LCDFontGlyphObj
LCDFontLanguage {.importc: "LCDFontLanguage", header: "pd_api.h".} = enum
  kLCDFontLanguageEnglish, kLCDFontLanguageJapanese, kLCDFontLanguageUnknown
LCDFontPage = ref LCDFontPageObj
LCDLineCapStyle {.importc: "LCDLineCapStyle", header: "pd_api.h".} = enum
  kLineCapStyleButt, kLineCapStyleSquare, kLineCapStyleRound
LCDPattern = ref object
An 8x8 pattern used for drawing. A pattern is an array of 8 numbers describing the bitmap for each row; for example, { 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55 } specifies a checkerboard pattern. An additional 8 numbers can be specified for an alpha mask bitmap.
LCDPolygonFillRule {.importc: "LCDPolygonFillRule", header: "pd_api.h".} = enum
  kPolygonFillNonZero, kPolygonFillEvenOdd
LCDRect {.importc: "LCDRect", header: "pd_api.h".} = object
  left* {.importc.}: int
  right* {.importc.}: int
  top* {.importc.}: int
  bottom* {.importc.}: int
LCDSolidColor {.importc: "LCDSolidColor", header: "pd_api.h".} = enum
  kColorBlack, kColorWhite, kColorClear, kColorXOR
PDStringEncoding {.importc: "PDStringEncoding", header: "pd_api.h".} = enum
  kASCIIEncoding, kUTF8Encoding, k16BitLEEncoding
PlaydateGraphics {.importc: "const struct playdate_graphics", header: "pd_api.h".} = object
  video* {.importc: "video".}: ptr PlaydateVideo
  setBackgroundColor* {.importc: "setBackgroundColor".}: proc (
      color: LCDSolidColor) {.cdecl, ...raises: [].}
  setDrawMode* {.importc: "setDrawMode".}: proc (mode: LCDBitmapDrawMode) {.
      cdecl, ...raises: [].}
  clearClipRect* {.importc: "clearClipRect".}: proc () {.cdecl, ...raises: [].}
  setLineCapStyle* {.importc: "setLineCapStyle".}: proc (
      endCapStyle: LCDLineCapStyle) {.cdecl, ...raises: [].}
  popContext* {.importc: "popContext".}: proc () {.cdecl, ...raises: [].}
  ## row stride = LCD_ROWSIZE
  ## row stride = LCD_ROWSIZE
  ## valid in simulator only, function is NULL on device
  ## 1.7
  ## 1.10
  ## 1.12
PlaydateVideo {.importc: "const struct playdate_video", header: "pd_api.h".} = object

Consts

LCD_COLUMNS: int = 400
LCD_ROWS: int = 240
LCD_ROWSIZE: int = 52
LCD_SCREEN_RECT = (left: 0, right: 400, top: 0, bottom: 240)

Procs

proc checkMaskCollision(this: ptr PlaydateGraphics; bitmap1: LCDBitmapPtr;
                        x1: int; y1: int; flip1: LCDBitmapFlip;
                        bitmap2: LCDBitmapPtr; x2: int; y2: int;
                        flip2: LCDBitmapFlip; rect: LCDRect): int {....raises: [],
    tags: [RootEffect], forbids: [].}
proc clear(this: ptr PlaydateGraphics; color: LCDColor) {....raises: [], raises: [].}
proc clearBitmap(this: ptr PlaydateGraphics; bitmap: LCDBitmapPtr;
                 bgcolor: LCDColor) {....raises: [], raises: [].}
proc display(this: ptr PlaydateGraphics) {....raises: [], tags: [RootEffect],
    forbids: [].}
proc drawEllipse(this: ptr PlaydateGraphics; x: int; y: int; width: int;
                 height: int; lineWidth: int; startAngle: float32;
                 endAngle: float32; color: LCDColor) {....raises: [].}
proc drawLine(this: ptr PlaydateGraphics; x1: int; y1: int; x2: int; y2: int;
              width: int; color: LCDColor) {....raises: [].}
proc drawRect(this: ptr PlaydateGraphics; x: int; y: int; width: int;
              height: int; color: LCDColor) {....raises: [].}
proc drawText(this: ptr PlaydateGraphics; text: string; len: uint;
              encoding: PDStringEncoding; x: int; y: int): int {.discardable,
    ...raises: [], tags: [RootEffect], forbids: [].}
proc fillEllipse(this: ptr PlaydateGraphics; x: int; y: int; width: int;
                 height: int; startAngle: float32; endAngle: float32;
                 color: LCDColor) {....raises: [].}
proc fillRect(this: ptr PlaydateGraphics; x: int; y: int; width: int;
              height: int; color: LCDColor) {....raises: [].}
proc fillTriangle(this: ptr PlaydateGraphics; x1: int; y1: int; x2: int;
                  y2: int; x3: int; y3: int; color: LCDColor) {....raises: [].}
proc makeLCDOpaquePattern(r0, r1, r2, r3, r4, r5, r6, r7: uint8): LCDPattern {.
    ...raises: [], tags: [], forbids: [].}
proc makeLCDPattern(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, ra, rb, rc, rd, re,
                    rf: uint8): LCDPattern {....raises: [], tags: [], forbids: [].}
proc makeLCDRect(x: int; y: int; width: int; height: int): LCDRect {....raises: [],
    tags: [], forbids: [].}
proc markUpdatedRows(this: ptr PlaydateGraphics; start: int; to: int) {.
    ...raises: [], tags: [RootEffect], forbids: [].}
proc setClipRect(this: ptr PlaydateGraphics; x: int; y: int; width: int;
                 height: int) {....raises: [], tags: [RootEffect], forbids: [].}
proc setColorToPattern(this: ptr PlaydateGraphics; color: LCDPatternPtr;
                       bitmap: LCDBitmapPtr; x: int; y: int) {....raises: [],
    raises: [], tags: [RootEffect], forbids: [].}
proc setDrawOffset(this: ptr PlaydateGraphics; dx: int; dy: int) {....raises: [],
    tags: [RootEffect], forbids: [].}
proc setScreenClipRect(this: ptr PlaydateGraphics; x: int; y: int; width: int;
                       height: int) {....raises: [], tags: [RootEffect],
                                      forbids: [].}
proc setTextLeading(this: ptr PlaydateGraphics; lineHeightAdjustment: int) {.
    ...raises: [], tags: [RootEffect], forbids: [].}
proc setTextTracking(this: ptr PlaydateGraphics; tracking: int) {....raises: [],
    tags: [RootEffect], forbids: [].}
proc translateLCDRect(rect: LCDRect; dx: int; dy: int): LCDRect {.
    importc: "PDStringEncoding", header: "pd_api.h", ...raises: [], tags: [],
    forbids: [].}