|
import dom |
|
|
|
type |
|
Canvas* = ref CanvasObj |
|
CanvasObj {.importc.} = object of dom.Element |
|
|
|
CanvasContext2d* = ref CanvasContext2dObj |
|
CanvasContext2dObj {.importc.} = object |
|
font*: cstring |
|
globalAlpha*: float |
|
globalCompositeOperation*: cstring |
|
shadowOffsetX*: float |
|
shadowOffsetY*: float |
|
shadowBlur*: float |
|
shadowColor*: cstring |
|
lineWidth*: float |
|
lineCap*: cstring |
|
lineJoin*: cstring |
|
miterLimit*: float |
|
lineDashOffset*: float |
|
|
|
CanvasPattern = object of dom.Element |
|
CanvasGradient = object of dom.Element |
|
HTMLImageElement = object of dom.Element |
|
HTMLCanvasElement = object of dom.Element |
|
HTMLVideoElement = object of dom.Element |
|
HTMLElement = object of dom.Element |
|
|
|
proc getContext2d*(c: Canvas): CanvasContext2d = |
|
{.emit: "`result` = `c`.getContext('2d');".} |
|
|
|
proc requestAnimationFrame*(fn: proc) = |
|
{.emit: "`result` = requestAnimationFrame(`fn`);".} |
|
|
|
proc save*(c: CanvasContext2d) {.importcpp.} |
|
proc restore*(c: CanvasContext2d) {.importcpp.} |
|
|
|
proc scale*(c: CanvasContext2d, x, y: float) {.importcpp.} |
|
proc rotate*(c: CanvasContext2d, angle: float) {.importcpp.} |
|
proc translate*(c: CanvasContext2d, x, y: float) {.importcpp.} |
|
proc transform*(ctx: CanvasContext2d, a, b, c, d, e, f: float) {.importcpp.} |
|
proc setTransform*(ctx: CanvasContext2d, a, b, c, d, e, f: float) {.importcpp.} |
|
|
|
proc strokeStyle*(c: CanvasContext2d) {.importcpp.} |
|
proc fillStyle*(c: CanvasContext2d) {.importcpp.} |
|
proc strokeStyle*(c: CanvasContext2d, value: cstring) {.importcpp.} |
|
proc strokeStyle*(c: CanvasContext2d, value: CanvasPattern) {.importcpp.} |
|
proc strokeStyle*(c: CanvasContext2d, value: CanvasGradient) {.importcpp.} |
|
proc fillStyle*(c: CanvasContext2d, value: cstring) {.importcpp.} |
|
proc fillStyle*(c: CanvasContext2d, value: CanvasPattern) {.importcpp.} |
|
proc fillStyle*(c: CanvasContext2d, value: CanvasGradient) {.importcpp.} |
|
|
|
proc createLinearGradient*(c: CanvasContext2d, x0, y0, x1, y1: float) {.importcpp.} |
|
proc createRadialGradient*(c: CanvasContext2d, x0, y0, r0, x1, y2, r1: float) {.importcpp.} |
|
proc createPattern*(c: CanvasContext2d, image: HTMLImageElement, repetition: cstring) {.importcpp.} |
|
proc createPattern*(c: CanvasContext2d, image: HTMLCanvasElement, repetition: cstring) {.importcpp.} |
|
proc createPattern*(c: CanvasContext2d, image: HTMLVideoElement, repetition: cstring) {.importcpp.} |
|
|
|
proc clearRect*(c: CanvasContext2d, x, y, w, h: float) {.importcpp.} |
|
proc fillRect*(c: CanvasContext2d, x, y, w, h: float) {.importcpp.} |
|
proc strokeRect*(c: CanvasContext2d, x, y, w, h: float) {.importcpp.} |
|
|
|
proc beginPath*(c: CanvasContext2d) {.importcpp.} |
|
proc fill*(c: CanvasContext2d) {.importcpp.} |
|
proc fill*(c: CanvasContext2d, fillRule: cstring) {.importcpp.} |
|
proc stroke*(c: CanvasContext2d) {.importcpp.} |
|
proc drawFocusIfNeeded*(c: CanvasContext2d, element: HTMLElement) {.importcpp.} |
|
proc clip*(c: CanvasContext2d) {.importcpp.} |
|
proc isPointInPath*(c: CanvasContext2d, x, y: float) {.importcpp.} |
|
|
|
proc closePath*(c: CanvasContext2d) {.importcpp.} |
|
proc moveTo*(c: CanvasContext2d, x, y: float) {.importcpp.} |
|
proc lineTo*(c: CanvasContext2d, x, y: float) {.importcpp.} |
|
proc quadraticCurveTo*(c: CanvasContext2d, cpx, cpy, x, y: float) {.importcpp.} |
|
proc bezierCurveTo*(c: CanvasContext2d, cp1x, cp1y, cp2x, cp2y, x, y: float) {.importcpp.} |
|
proc arcTo*(c: CanvasContext2d, x1, y1, x2, y2, radius: float) {.importcpp.} |
|
proc rect*(c: CanvasContext2d, x, y, w, h: float) {.importcpp.} |
|
proc arc*(c: CanvasContext2d, x, y, radius, startAngle, endAngle: float) {.importcpp.} |
|
proc arc*(c: CanvasContext2d, x, y, radius, startAngle, endAngle: float, anticlockwise: bool) {.importcpp.} |
|
|
|
proc fillText*(c: CanvasContext2d, text: cstring, x, y, maxWidth: float) {.importcpp.} |
|
proc strokeText*(c: CanvasContext2d, text: cstring, x, y, maxWidth: float) {.importcpp.} |
|
proc fillText*(c: CanvasContext2d, text: cstring, x, y: float) {.importcpp.} |
|
proc strokeText*(c: CanvasContext2d, text: cstring, x, y: float) {.importcpp.} |
|
proc measureText*(c: CanvasContext2d, text: cstring) {.importcpp.} |
|
|
|
proc setLineDash*(c: CanvasContext2d, segments: openArray[float]) {.importcpp.} |
|
proc getLineDash*(c: CanvasContext2d) {.importcpp.} |
|
proc lineDashOffset*(c: CanvasContext2d) {.importcpp.} |
|
|
|
# incomplet |