Merge pull request #265 from guzba/master

internal bindings
This commit is contained in:
treeform 2021-08-24 20:41:56 -07:00 committed by GitHub
commit da6f96221e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 2594 additions and 0 deletions

237
bindings/bindings.nim Normal file
View file

@ -0,0 +1,237 @@
import bindy, pixie, unicode
type
Vector2 = object
x*, y*: float32
Matrix3 = object
a*, b*, c*, d*, e*, f*, g*, h*, i*: float32
var lastError*: ref PixieError
proc takeError*(): string =
result = lastError.msg
lastError = nil
proc checkError*(): bool =
result = lastError != nil
proc drawImage1*(
ctx: Context, image: Image, dx, dy: float32
) {.raises: [PixieError].} =
ctx.drawImage(image, dx, dy)
proc drawImage2*(
ctx: Context, image: Image, dx, dy, dWidth, dHeight: float32
) {.raises: [PixieError].} =
ctx.drawImage(image, dx, dy, dWidth, dHeight)
proc drawImage3*(
ctx: Context,
image: Image,
sx, sy, sWidth, sHeight,
dx, dy, dWidth, dHeight: float32
) {.raises: [PixieError].} =
ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
exportEnums:
export
FileFormat,
BlendMode,
PaintKind,
WindingRule,
LineCap,
LineJoin,
HorizontalAlignment,
VerticalAlignment,
TextCase
exportObjects:
export
Vector2,
Matrix3,
Rect,
Color,
ColorStop,
TextMetrics
exportProcs:
export
bindings.checkError,
bindings.takeError
exportSeq seq[float32]:
discard
exportSeq seq[Span]:
export
pixie.typeset,
pixie.computeBounds
exportRefObject Image, ["width", "height"]:
export
pixie.writeFile,
pixie.wh,
pixie.copy,
pixie.getColor,
pixie.setColor,
pixie.fill,
pixie.flipHorizontal,
pixie.flipVertical,
pixie.subImage,
pixie.minifyBy2,
pixie.magnifyBy2,
pixie.applyOpacity,
pixie.invert,
pixie.blur,
pixie.newMask,
pixie.resize,
pixie.shadow,
pixie.superImage,
pixie.draw,
pixie.fillGradient,
pixie.fillText,
pixie.strokeText,
pixie.fillPath,
pixie.strokePath,
pixie.newContext
exportRefObject Mask, ["width", "height"]:
export
pixie.writeFile,
pixie.wh,
pixie.copy,
pixie.getValue,
pixie.setValue,
pixie.fill,
pixie.minifyBy2,
pixie.spread,
pixie.ceil,
pixie.newImage,
pixie.applyOpacity,
pixie.invert,
pixie.blur,
pixie.draw,
pixie.fillText,
pixie.strokeText,
pixie.fillPath,
pixie.strokePath
exportRefObject Paint, ["*"]:
export
pixie.newPaint
exportRefObject Path, ["*"]:
export
pixie.transform,
pixie.addPath,
pixie.closePath,
pixie.computeBounds,
pixie.fillOverlaps,
pixie.strokeOverlaps
toggleBasicOnly()
export
pixie.moveTo,
pixie.lineTo,
pixie.bezierCurveTo,
pixie.quadraticCurveTo,
pixie.ellipticalArcTo,
pixie.arc,
pixie.arcTo,
pixie.rect,
pixie.roundedRect,
pixie.ellipse,
pixie.circle,
pixie.polygon
exportRefObject Typeface, ["*"]:
export
pixie.ascent,
pixie.descent,
pixie.lineGap,
pixie.lineHeight,
pixie.getGlyphPath,
pixie.getAdvance,
pixie.getKerningAdjustment,
pixie.newFont
exportRefObject Font, ["*"]:
export
pixie.scale,
pixie.defaultLineHeight,
pixie.typeset,
pixie.computeBounds
exportRefObject Span, ["*"]:
discard
exportRefObject Arrangement, []:
export
pixie.computeBounds
exportRefObject Context, ["*"]:
export
pixie.save,
pixie.saveLayer,
pixie.restore,
pixie.beginPath,
pixie.closePath,
pixie.fill,
pixie.clip,
pixie.stroke,
pixie.measureText,
pixie.getTransform,
pixie.setTransform,
pixie.transform,
pixie.resetTransform,
bindings.drawImage1,
bindings.drawImage2,
bindings.drawImage3
toggleBasicOnly()
export
pixie.moveTo,
pixie.lineTo,
pixie.bezierCurveTo,
pixie.quadraticCurveTo,
pixie.ellipticalArcTo,
pixie.arc,
pixie.arcTo,
pixie.rect,
pixie.roundedRect,
pixie.ellipse,
pixie.circle,
pixie.polygon,
pixie.clearRect,
pixie.fillRect,
pixie.strokeRect,
pixie.fillText,
pixie.strokeText,
pixie.translate,
pixie.scale,
pixie.rotate,
pixie.isPointInPath,
pixie.isPointInStroke
exportProcs:
export
pixie.newImage,
pixie.newMask,
pixie.newPaint,
pixie.newPath,
pixie.newSpan,
pixie.newContext,
pixie.readImage,
pixie.readmask,
pixie.readTypeface,
pixie.readFont,
pixie.parsePath,
pixie.miterLimitToAngle,
pixie.angleToMiterLimit
writeFiles("bindings/generated", "pixie")
include generated/internal

View file

@ -0,0 +1,960 @@
proc pixie_check_error*(): bool {.raises: [], cdecl, exportc, dynlib.} =
checkError()
proc pixie_take_error*(): cstring {.raises: [], cdecl, exportc, dynlib.} =
takeError().cstring
type SeqFloat32* = ref object
s: seq[float32]
proc pixie_new_seq_float32*(): SeqFloat32 {.raises: [], cdecl, exportc, dynlib.} =
SeqFloat32()
proc pixie_seq_float32_len*(s: SeqFloat32): int {.raises: [], cdecl, exportc, dynlib.} =
s.s.len
proc pixie_seq_float32_add*(s: SeqFloat32, v: float32) {.raises: [], cdecl, exportc, dynlib.} =
s.s.add(v)
proc pixie_seq_float32_get*(s: SeqFloat32, i: int): float32 {.raises: [], cdecl, exportc, dynlib.} =
s.s[i]
proc pixie_seq_float32_set*(s: SeqFloat32, i: int, v: float32) {.raises: [], cdecl, exportc, dynlib.} =
s.s[i] = v
proc pixie_seq_float32_remove*(s: SeqFloat32, i: int) {.raises: [], cdecl, exportc, dynlib.} =
s.s.delete(i)
proc pixie_seq_float32_clear*(s: SeqFloat32) {.raises: [], cdecl, exportc, dynlib.} =
s.s.setLen(0)
proc pixie_seq_float32_unref*(s: SeqFloat32) {.raises: [], cdecl, exportc, dynlib.} =
GC_unref(s)
type SeqSpan* = ref object
s: seq[Span]
proc pixie_new_seq_span*(): SeqSpan {.raises: [], cdecl, exportc, dynlib.} =
SeqSpan()
proc pixie_seq_span_len*(s: SeqSpan): int {.raises: [], cdecl, exportc, dynlib.} =
s.s.len
proc pixie_seq_span_add*(s: SeqSpan, v: Span) {.raises: [], cdecl, exportc, dynlib.} =
s.s.add(v)
proc pixie_seq_span_get*(s: SeqSpan, i: int): Span {.raises: [], cdecl, exportc, dynlib.} =
s.s[i]
proc pixie_seq_span_set*(s: SeqSpan, i: int, v: Span) {.raises: [], cdecl, exportc, dynlib.} =
s.s[i] = v
proc pixie_seq_span_remove*(s: SeqSpan, i: int) {.raises: [], cdecl, exportc, dynlib.} =
s.s.delete(i)
proc pixie_seq_span_clear*(s: SeqSpan) {.raises: [], cdecl, exportc, dynlib.} =
s.s.setLen(0)
proc pixie_seq_span_unref*(s: SeqSpan) {.raises: [], cdecl, exportc, dynlib.} =
GC_unref(s)
proc pixie_seq_span_typeset*(spans: SeqSpan, bounds: Vec2, h_align: HorizontalAlignment, v_align: VerticalAlignment, wrap: bool): Arrangement {.raises: [], cdecl, exportc, dynlib.} =
typeset(spans.s, bounds, h_align, v_align, wrap)
proc pixie_seq_span_compute_bounds*(spans: SeqSpan): Vec2 {.raises: [], cdecl, exportc, dynlib.} =
computeBounds(spans.s)
proc pixie_image_unref*(x: Image) {.raises: [], cdecl, exportc, dynlib.} =
GC_unref(x)
proc pixie_image_get_width*(image: Image): int {.raises: [], cdecl, exportc, dynlib.} =
image.width
proc pixie_image_set_width*(image: Image, width: int) {.raises: [], cdecl, exportc, dynlib.} =
image.width = width
proc pixie_image_get_height*(image: Image): int {.raises: [], cdecl, exportc, dynlib.} =
image.height
proc pixie_image_set_height*(image: Image, height: int) {.raises: [], cdecl, exportc, dynlib.} =
image.height = height
proc pixie_image_write_file*(image: Image, file_path: cstring) {.raises: [], cdecl, exportc, dynlib.} =
try:
writeFile(image, file_path.`$`)
except PixieError as e:
lastError = e
proc pixie_image_wh*(image: Image): Vec2 {.raises: [], cdecl, exportc, dynlib.} =
wh(image)
proc pixie_image_copy*(image: Image): Image {.raises: [], cdecl, exportc, dynlib.} =
try:
result = copy(image)
except PixieError as e:
lastError = e
proc pixie_image_get_color*(image: Image, x: int, y: int): Color {.raises: [], cdecl, exportc, dynlib.} =
getColor(image, x, y)
proc pixie_image_set_color*(image: Image, x: int, y: int, color: Color) {.raises: [], cdecl, exportc, dynlib.} =
setColor(image, x, y, color)
proc pixie_image_fill*(image: Image, color: Color) {.raises: [], cdecl, exportc, dynlib.} =
fill(image, color)
proc pixie_image_flip_horizontal*(image: Image) {.raises: [], cdecl, exportc, dynlib.} =
flipHorizontal(image)
proc pixie_image_flip_vertical*(image: Image) {.raises: [], cdecl, exportc, dynlib.} =
flipVertical(image)
proc pixie_image_sub_image*(image: Image, x: int, y: int, w: int, h: int): Image {.raises: [], cdecl, exportc, dynlib.} =
try:
result = subImage(image, x, y, w, h)
except PixieError as e:
lastError = e
proc pixie_image_minify_by2*(image: Image, power: int): Image {.raises: [], cdecl, exportc, dynlib.} =
try:
result = minifyBy2(image, power)
except PixieError as e:
lastError = e
proc pixie_image_magnify_by2*(image: Image, power: int): Image {.raises: [], cdecl, exportc, dynlib.} =
try:
result = magnifyBy2(image, power)
except PixieError as e:
lastError = e
proc pixie_image_apply_opacity*(target: Image, opacity: float32) {.raises: [], cdecl, exportc, dynlib.} =
applyOpacity(target, opacity)
proc pixie_image_invert*(target: Image) {.raises: [], cdecl, exportc, dynlib.} =
invert(target)
proc pixie_image_blur*(image: Image, radius: float32, out_of_bounds: Color) {.raises: [], cdecl, exportc, dynlib.} =
try:
blur(image, radius, out_of_bounds)
except PixieError as e:
lastError = e
proc pixie_image_new_mask*(image: Image): Mask {.raises: [], cdecl, exportc, dynlib.} =
try:
result = newMask(image)
except PixieError as e:
lastError = e
proc pixie_image_resize*(src_image: Image, width: int, height: int): Image {.raises: [], cdecl, exportc, dynlib.} =
try:
result = resize(src_image, width, height)
except PixieError as e:
lastError = e
proc pixie_image_shadow*(image: Image, offset: Vec2, spread: float32, blur: float32, color: Color): Image {.raises: [], cdecl, exportc, dynlib.} =
try:
result = shadow(image, offset, spread, blur, color)
except PixieError as e:
lastError = e
proc pixie_image_super_image*(image: Image, x: int, y: int, w: int, h: int): Image {.raises: [], cdecl, exportc, dynlib.} =
try:
result = superImage(image, x, y, w, h)
except PixieError as e:
lastError = e
proc pixie_image_mask_draw*(image: Image, mask: Mask, transform: Mat3, blend_mode: BlendMode) {.raises: [], cdecl, exportc, dynlib.} =
try:
draw(image, mask, transform, blend_mode)
except PixieError as e:
lastError = e
proc pixie_image_image_draw*(a: Image, b: Image, transform: Mat3, blend_mode: BlendMode) {.raises: [], cdecl, exportc, dynlib.} =
try:
draw(a, b, transform, blend_mode)
except PixieError as e:
lastError = e
proc pixie_image_fill_gradient*(image: Image, paint: Paint) {.raises: [], cdecl, exportc, dynlib.} =
try:
fillGradient(image, paint)
except PixieError as e:
lastError = e
proc pixie_image_arrangement_fill_text*(target: Image, arrangement: Arrangement, transform: Mat3) {.raises: [], cdecl, exportc, dynlib.} =
try:
fillText(target, arrangement, transform)
except PixieError as e:
lastError = e
proc pixie_image_font_fill_text*(target: Image, font: Font, text: cstring, transform: Mat3, bounds: Vec2, h_align: HorizontalAlignment, v_align: VerticalAlignment) {.raises: [], cdecl, exportc, dynlib.} =
try:
fillText(target, font, text.`$`, transform, bounds, h_align, v_align)
except PixieError as e:
lastError = e
proc pixie_image_arrangement_stroke_text*(target: Image, arrangement: Arrangement, transform: Mat3, stroke_width: float32, line_cap: LineCap, line_join: LineJoin, miter_limit: float32, dashes: SeqFloat32) {.raises: [], cdecl, exportc, dynlib.} =
try:
strokeText(target, arrangement, transform, stroke_width, line_cap, line_join, miter_limit, dashes.s)
except PixieError as e:
lastError = e
proc pixie_image_font_stroke_text*(target: Image, font: Font, text: cstring, transform: Mat3, stroke_width: float32, bounds: Vec2, h_align: HorizontalAlignment, v_align: VerticalAlignment, line_cap: LineCap, line_join: LineJoin, miter_limit: float32, dashes: SeqFloat32) {.raises: [], cdecl, exportc, dynlib.} =
try:
strokeText(target, font, text.`$`, transform, stroke_width, bounds, h_align, v_align, line_cap, line_join, miter_limit, dashes.s)
except PixieError as e:
lastError = e
proc pixie_image_fill_path*(image: Image, path: Path, paint: Paint, transform: Mat3, winding_rule: WindingRule) {.raises: [], cdecl, exportc, dynlib.} =
try:
fillPath(image, path, paint, transform, winding_rule)
except PixieError as e:
lastError = e
proc pixie_image_stroke_path*(image: Image, path: Path, paint: Paint, transform: Mat3, stroke_width: float32, line_cap: LineCap, line_join: LineJoin, miter_limit: float32, dashes: SeqFloat32) {.raises: [], cdecl, exportc, dynlib.} =
try:
strokePath(image, path, paint, transform, stroke_width, line_cap, line_join, miter_limit, dashes.s)
except PixieError as e:
lastError = e
proc pixie_image_new_context*(image: Image): Context {.raises: [], cdecl, exportc, dynlib.} =
newContext(image)
proc pixie_mask_unref*(x: Mask) {.raises: [], cdecl, exportc, dynlib.} =
GC_unref(x)
proc pixie_mask_get_width*(mask: Mask): int {.raises: [], cdecl, exportc, dynlib.} =
mask.width
proc pixie_mask_set_width*(mask: Mask, width: int) {.raises: [], cdecl, exportc, dynlib.} =
mask.width = width
proc pixie_mask_get_height*(mask: Mask): int {.raises: [], cdecl, exportc, dynlib.} =
mask.height
proc pixie_mask_set_height*(mask: Mask, height: int) {.raises: [], cdecl, exportc, dynlib.} =
mask.height = height
proc pixie_mask_write_file*(mask: Mask, file_path: cstring) {.raises: [], cdecl, exportc, dynlib.} =
try:
writeFile(mask, file_path.`$`)
except PixieError as e:
lastError = e
proc pixie_mask_wh*(mask: Mask): Vec2 {.raises: [], cdecl, exportc, dynlib.} =
wh(mask)
proc pixie_mask_copy*(mask: Mask): Mask {.raises: [], cdecl, exportc, dynlib.} =
try:
result = copy(mask)
except PixieError as e:
lastError = e
proc pixie_mask_get_value*(mask: Mask, x: int, y: int): uint8 {.raises: [], cdecl, exportc, dynlib.} =
getValue(mask, x, y)
proc pixie_mask_set_value*(mask: Mask, x: int, y: int, value: uint8) {.raises: [], cdecl, exportc, dynlib.} =
setValue(mask, x, y, value)
proc pixie_mask_fill*(mask: Mask, value: uint8) {.raises: [], cdecl, exportc, dynlib.} =
fill(mask, value)
proc pixie_mask_minify_by2*(mask: Mask, power: int): Mask {.raises: [], cdecl, exportc, dynlib.} =
try:
result = minifyBy2(mask, power)
except PixieError as e:
lastError = e
proc pixie_mask_spread*(mask: Mask, spread: float32) {.raises: [], cdecl, exportc, dynlib.} =
try:
spread(mask, spread)
except PixieError as e:
lastError = e
proc pixie_mask_ceil*(mask: Mask) {.raises: [], cdecl, exportc, dynlib.} =
ceil(mask)
proc pixie_mask_new_image*(mask: Mask): Image {.raises: [], cdecl, exportc, dynlib.} =
try:
result = newImage(mask)
except PixieError as e:
lastError = e
proc pixie_mask_apply_opacity*(target: Mask, opacity: float32) {.raises: [], cdecl, exportc, dynlib.} =
applyOpacity(target, opacity)
proc pixie_mask_invert*(target: Mask) {.raises: [], cdecl, exportc, dynlib.} =
invert(target)
proc pixie_mask_blur*(mask: Mask, radius: float32, out_of_bounds: uint8) {.raises: [], cdecl, exportc, dynlib.} =
try:
blur(mask, radius, out_of_bounds)
except PixieError as e:
lastError = e
proc pixie_mask_mask_draw*(a: Mask, b: Mask, transform: Mat3, blend_mode: BlendMode) {.raises: [], cdecl, exportc, dynlib.} =
try:
draw(a, b, transform, blend_mode)
except PixieError as e:
lastError = e
proc pixie_mask_image_draw*(mask: Mask, image: Image, transform: Mat3, blend_mode: BlendMode) {.raises: [], cdecl, exportc, dynlib.} =
try:
draw(mask, image, transform, blend_mode)
except PixieError as e:
lastError = e
proc pixie_mask_arrangement_fill_text*(target: Mask, arrangement: Arrangement, transform: Mat3) {.raises: [], cdecl, exportc, dynlib.} =
try:
fillText(target, arrangement, transform)
except PixieError as e:
lastError = e
proc pixie_mask_font_fill_text*(target: Mask, font: Font, text: cstring, transform: Mat3, bounds: Vec2, h_align: HorizontalAlignment, v_align: VerticalAlignment) {.raises: [], cdecl, exportc, dynlib.} =
try:
fillText(target, font, text.`$`, transform, bounds, h_align, v_align)
except PixieError as e:
lastError = e
proc pixie_mask_arrangement_stroke_text*(target: Mask, arrangement: Arrangement, transform: Mat3, stroke_width: float32, line_cap: LineCap, line_join: LineJoin, miter_limit: float32, dashes: SeqFloat32) {.raises: [], cdecl, exportc, dynlib.} =
try:
strokeText(target, arrangement, transform, stroke_width, line_cap, line_join, miter_limit, dashes.s)
except PixieError as e:
lastError = e
proc pixie_mask_font_stroke_text*(target: Mask, font: Font, text: cstring, transform: Mat3, stroke_width: float32, bounds: Vec2, h_align: HorizontalAlignment, v_align: VerticalAlignment, line_cap: LineCap, line_join: LineJoin, miter_limit: float32, dashes: SeqFloat32) {.raises: [], cdecl, exportc, dynlib.} =
try:
strokeText(target, font, text.`$`, transform, stroke_width, bounds, h_align, v_align, line_cap, line_join, miter_limit, dashes.s)
except PixieError as e:
lastError = e
proc pixie_mask_fill_path*(mask: Mask, path: Path, transform: Mat3, winding_rule: WindingRule, blend_mode: BlendMode) {.raises: [], cdecl, exportc, dynlib.} =
try:
fillPath(mask, path, transform, winding_rule, blend_mode)
except PixieError as e:
lastError = e
proc pixie_mask_stroke_path*(mask: Mask, path: Path, transform: Mat3, stroke_width: float32, line_cap: LineCap, line_join: LineJoin, miter_limit: float32, dashes: SeqFloat32, blend_mode: BlendMode) {.raises: [], cdecl, exportc, dynlib.} =
try:
strokePath(mask, path, transform, stroke_width, line_cap, line_join, miter_limit, dashes.s, blend_mode)
except PixieError as e:
lastError = e
proc pixie_paint_unref*(x: Paint) {.raises: [], cdecl, exportc, dynlib.} =
GC_unref(x)
proc pixie_paint_get_kind*(paint: Paint): PaintKind {.raises: [], cdecl, exportc, dynlib.} =
paint.kind
proc pixie_paint_set_kind*(paint: Paint, kind: PaintKind) {.raises: [], cdecl, exportc, dynlib.} =
paint.kind = kind
proc pixie_paint_get_blend_mode*(paint: Paint): BlendMode {.raises: [], cdecl, exportc, dynlib.} =
paint.blendMode
proc pixie_paint_set_blend_mode*(paint: Paint, blendMode: BlendMode) {.raises: [], cdecl, exportc, dynlib.} =
paint.blendMode = blendMode
proc pixie_paint_get_opacity*(paint: Paint): float32 {.raises: [], cdecl, exportc, dynlib.} =
paint.opacity
proc pixie_paint_set_opacity*(paint: Paint, opacity: float32) {.raises: [], cdecl, exportc, dynlib.} =
paint.opacity = opacity
proc pixie_paint_get_color*(paint: Paint): Color {.raises: [], cdecl, exportc, dynlib.} =
paint.color
proc pixie_paint_set_color*(paint: Paint, color: Color) {.raises: [], cdecl, exportc, dynlib.} =
paint.color = color
proc pixie_paint_get_image*(paint: Paint): Image {.raises: [], cdecl, exportc, dynlib.} =
paint.image
proc pixie_paint_set_image*(paint: Paint, image: Image) {.raises: [], cdecl, exportc, dynlib.} =
paint.image = image
proc pixie_paint_get_image_mat*(paint: Paint): Mat3 {.raises: [], cdecl, exportc, dynlib.} =
paint.imageMat
proc pixie_paint_set_image_mat*(paint: Paint, imageMat: Mat3) {.raises: [], cdecl, exportc, dynlib.} =
paint.imageMat = imageMat
proc pixie_paint_gradient_handle_positions_len*(paint: Paint): int {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientHandlePositions.len
proc pixie_paint_gradient_handle_positions_add*(paint: Paint, v: Vec2) {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientHandlePositions.add(v)
proc pixie_paint_gradient_handle_positions_get*(paint: Paint, i: int): Vec2 {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientHandlePositions[i]
proc pixie_paint_gradient_handle_positions_set*(paint: Paint, i: int, v: Vec2) {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientHandlePositions[i] = v
proc pixie_paint_gradient_handle_positions_remove*(paint: Paint, i: int) {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientHandlePositions.delete(i)
proc pixie_paint_gradient_handle_positions_clear*(paint: Paint) {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientHandlePositions.setLen(0)
proc pixie_paint_gradient_stops_len*(paint: Paint): int {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientStops.len
proc pixie_paint_gradient_stops_add*(paint: Paint, v: ColorStop) {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientStops.add(v)
proc pixie_paint_gradient_stops_get*(paint: Paint, i: int): ColorStop {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientStops[i]
proc pixie_paint_gradient_stops_set*(paint: Paint, i: int, v: ColorStop) {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientStops[i] = v
proc pixie_paint_gradient_stops_remove*(paint: Paint, i: int) {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientStops.delete(i)
proc pixie_paint_gradient_stops_clear*(paint: Paint) {.raises: [], cdecl, exportc, dynlib.} =
paint.gradientStops.setLen(0)
proc pixie_paint_new_paint*(paint: Paint): Paint {.raises: [], cdecl, exportc, dynlib.} =
newPaint(paint)
proc pixie_path_unref*(x: Path) {.raises: [], cdecl, exportc, dynlib.} =
GC_unref(x)
proc pixie_path_transform*(path: Path, mat: Mat3) {.raises: [], cdecl, exportc, dynlib.} =
transform(path, mat)
proc pixie_path_add_path*(path: Path, other: Path) {.raises: [], cdecl, exportc, dynlib.} =
addPath(path, other)
proc pixie_path_close_path*(path: Path) {.raises: [], cdecl, exportc, dynlib.} =
closePath(path)
proc pixie_path_compute_bounds*(path: Path, transform: Mat3): Rect {.raises: [], cdecl, exportc, dynlib.} =
try:
result = computeBounds(path, transform)
except PixieError as e:
lastError = e
proc pixie_path_fill_overlaps*(path: Path, test: Vec2, transform: Mat3, winding_rule: WindingRule): bool {.raises: [], cdecl, exportc, dynlib.} =
try:
result = fillOverlaps(path, test, transform, winding_rule)
except PixieError as e:
lastError = e
proc pixie_path_stroke_overlaps*(path: Path, test: Vec2, transform: Mat3, stroke_width: float32, line_cap: LineCap, line_join: LineJoin, miter_limit: float32, dashes: SeqFloat32): bool {.raises: [], cdecl, exportc, dynlib.} =
try:
result = strokeOverlaps(path, test, transform, stroke_width, line_cap, line_join, miter_limit, dashes.s)
except PixieError as e:
lastError = e
proc pixie_path_move_to*(path: Path, x: float32, y: float32) {.raises: [], cdecl, exportc, dynlib.} =
moveTo(path, x, y)
proc pixie_path_line_to*(path: Path, x: float32, y: float32) {.raises: [], cdecl, exportc, dynlib.} =
lineTo(path, x, y)
proc pixie_path_bezier_curve_to*(path: Path, x1: float32, y1: float32, x2: float32, y2: float32, x3: float32, y3: float32) {.raises: [], cdecl, exportc, dynlib.} =
bezierCurveTo(path, x1, y1, x2, y2, x3, y3)
proc pixie_path_quadratic_curve_to*(path: Path, x1: float32, y1: float32, x2: float32, y2: float32) {.raises: [], cdecl, exportc, dynlib.} =
quadraticCurveTo(path, x1, y1, x2, y2)
proc pixie_path_elliptical_arc_to*(path: Path, rx: float32, ry: float32, x_axis_rotation: float32, large_arc_flag: bool, sweep_flag: bool, x: float32, y: float32) {.raises: [], cdecl, exportc, dynlib.} =
ellipticalArcTo(path, rx, ry, x_axis_rotation, large_arc_flag, sweep_flag, x, y)
proc pixie_path_arc*(path: Path, x: float32, y: float32, r: float32, a0: float32, a1: float32, ccw: bool) {.raises: [], cdecl, exportc, dynlib.} =
try:
arc(path, x, y, r, a0, a1, ccw)
except PixieError as e:
lastError = e
proc pixie_path_arc_to*(path: Path, x1: float32, y1: float32, x2: float32, y2: float32, r: float32) {.raises: [], cdecl, exportc, dynlib.} =
try:
arcTo(path, x1, y1, x2, y2, r)
except PixieError as e:
lastError = e
proc pixie_path_rect*(path: Path, x: float32, y: float32, w: float32, h: float32, clockwise: bool) {.raises: [], cdecl, exportc, dynlib.} =
rect(path, x, y, w, h, clockwise)
proc pixie_path_rounded_rect*(path: Path, x: float32, y: float32, w: float32, h: float32, nw: float32, ne: float32, se: float32, sw: float32, clockwise: bool) {.raises: [], cdecl, exportc, dynlib.} =
roundedRect(path, x, y, w, h, nw, ne, se, sw, clockwise)
proc pixie_path_ellipse*(path: Path, cx: float32, cy: float32, rx: float32, ry: float32) {.raises: [], cdecl, exportc, dynlib.} =
ellipse(path, cx, cy, rx, ry)
proc pixie_path_circle*(path: Path, cx: float32, cy: float32, r: float32) {.raises: [], cdecl, exportc, dynlib.} =
circle(path, cx, cy, r)
proc pixie_path_polygon*(path: Path, x: float32, y: float32, size: float32, sides: int) {.raises: [], cdecl, exportc, dynlib.} =
polygon(path, x, y, size, sides)
proc pixie_typeface_unref*(x: Typeface) {.raises: [], cdecl, exportc, dynlib.} =
GC_unref(x)
proc pixie_typeface_get_file_path*(typeface: Typeface): cstring {.raises: [], cdecl, exportc, dynlib.} =
typeface.filePath.cstring
proc pixie_typeface_set_file_path*(typeface: Typeface, filePath: cstring) {.raises: [], cdecl, exportc, dynlib.} =
typeface.filePath = filePath.`$`
proc pixie_typeface_ascent*(typeface: Typeface): float32 {.raises: [], cdecl, exportc, dynlib.} =
ascent(typeface)
proc pixie_typeface_descent*(typeface: Typeface): float32 {.raises: [], cdecl, exportc, dynlib.} =
descent(typeface)
proc pixie_typeface_line_gap*(typeface: Typeface): float32 {.raises: [], cdecl, exportc, dynlib.} =
lineGap(typeface)
proc pixie_typeface_line_height*(typeface: Typeface): float32 {.raises: [], cdecl, exportc, dynlib.} =
lineHeight(typeface)
proc pixie_typeface_get_glyph_path*(typeface: Typeface, rune: int32): Path {.raises: [], cdecl, exportc, dynlib.} =
try:
result = getGlyphPath(typeface, rune.Rune)
except PixieError as e:
lastError = e
proc pixie_typeface_get_advance*(typeface: Typeface, rune: int32): float32 {.raises: [], cdecl, exportc, dynlib.} =
getAdvance(typeface, rune.Rune)
proc pixie_typeface_get_kerning_adjustment*(typeface: Typeface, left: int32, right: int32): float32 {.raises: [], cdecl, exportc, dynlib.} =
getKerningAdjustment(typeface, left.Rune, right.Rune)
proc pixie_typeface_new_font*(typeface: Typeface): Font {.raises: [], cdecl, exportc, dynlib.} =
newFont(typeface)
proc pixie_font_unref*(x: Font) {.raises: [], cdecl, exportc, dynlib.} =
GC_unref(x)
proc pixie_font_get_typeface*(font: Font): Typeface {.raises: [], cdecl, exportc, dynlib.} =
font.typeface
proc pixie_font_set_typeface*(font: Font, typeface: Typeface) {.raises: [], cdecl, exportc, dynlib.} =
font.typeface = typeface
proc pixie_font_get_size*(font: Font): float32 {.raises: [], cdecl, exportc, dynlib.} =
font.size
proc pixie_font_set_size*(font: Font, size: float32) {.raises: [], cdecl, exportc, dynlib.} =
font.size = size
proc pixie_font_get_line_height*(font: Font): float32 {.raises: [], cdecl, exportc, dynlib.} =
font.lineHeight
proc pixie_font_set_line_height*(font: Font, lineHeight: float32) {.raises: [], cdecl, exportc, dynlib.} =
font.lineHeight = lineHeight
proc pixie_font_paints_len*(font: Font): int {.raises: [], cdecl, exportc, dynlib.} =
font.paints.len
proc pixie_font_paints_add*(font: Font, v: Paint) {.raises: [], cdecl, exportc, dynlib.} =
font.paints.add(v)
proc pixie_font_paints_get*(font: Font, i: int): Paint {.raises: [], cdecl, exportc, dynlib.} =
font.paints[i]
proc pixie_font_paints_set*(font: Font, i: int, v: Paint) {.raises: [], cdecl, exportc, dynlib.} =
font.paints[i] = v
proc pixie_font_paints_remove*(font: Font, i: int) {.raises: [], cdecl, exportc, dynlib.} =
font.paints.delete(i)
proc pixie_font_paints_clear*(font: Font) {.raises: [], cdecl, exportc, dynlib.} =
font.paints.setLen(0)
proc pixie_font_get_text_case*(font: Font): TextCase {.raises: [], cdecl, exportc, dynlib.} =
font.textCase
proc pixie_font_set_text_case*(font: Font, textCase: TextCase) {.raises: [], cdecl, exportc, dynlib.} =
font.textCase = textCase
proc pixie_font_get_underline*(font: Font): bool {.raises: [], cdecl, exportc, dynlib.} =
font.underline
proc pixie_font_set_underline*(font: Font, underline: bool) {.raises: [], cdecl, exportc, dynlib.} =
font.underline = underline
proc pixie_font_get_strikethrough*(font: Font): bool {.raises: [], cdecl, exportc, dynlib.} =
font.strikethrough
proc pixie_font_set_strikethrough*(font: Font, strikethrough: bool) {.raises: [], cdecl, exportc, dynlib.} =
font.strikethrough = strikethrough
proc pixie_font_get_no_kerning_adjustments*(font: Font): bool {.raises: [], cdecl, exportc, dynlib.} =
font.noKerningAdjustments
proc pixie_font_set_no_kerning_adjustments*(font: Font, noKerningAdjustments: bool) {.raises: [], cdecl, exportc, dynlib.} =
font.noKerningAdjustments = noKerningAdjustments
proc pixie_font_scale*(font: Font): float32 {.raises: [], cdecl, exportc, dynlib.} =
scale(font)
proc pixie_font_default_line_height*(font: Font): float32 {.raises: [], cdecl, exportc, dynlib.} =
defaultLineHeight(font)
proc pixie_font_typeset*(font: Font, text: cstring, bounds: Vec2, h_align: HorizontalAlignment, v_align: VerticalAlignment, wrap: bool): Arrangement {.raises: [], cdecl, exportc, dynlib.} =
typeset(font, text.`$`, bounds, h_align, v_align, wrap)
proc pixie_font_compute_bounds*(font: Font, text: cstring): Vec2 {.raises: [], cdecl, exportc, dynlib.} =
computeBounds(font, text.`$`)
proc pixie_span_unref*(x: Span) {.raises: [], cdecl, exportc, dynlib.} =
GC_unref(x)
proc pixie_span_get_text*(span: Span): cstring {.raises: [], cdecl, exportc, dynlib.} =
span.text.cstring
proc pixie_span_set_text*(span: Span, text: cstring) {.raises: [], cdecl, exportc, dynlib.} =
span.text = text.`$`
proc pixie_span_get_font*(span: Span): Font {.raises: [], cdecl, exportc, dynlib.} =
span.font
proc pixie_span_set_font*(span: Span, font: Font) {.raises: [], cdecl, exportc, dynlib.} =
span.font = font
proc pixie_arrangement_unref*(x: Arrangement) {.raises: [], cdecl, exportc, dynlib.} =
GC_unref(x)
proc pixie_arrangement_compute_bounds*(arrangement: Arrangement): Vec2 {.raises: [], cdecl, exportc, dynlib.} =
computeBounds(arrangement)
proc pixie_context_unref*(x: Context) {.raises: [], cdecl, exportc, dynlib.} =
GC_unref(x)
proc pixie_context_get_image*(context: Context): Image {.raises: [], cdecl, exportc, dynlib.} =
context.image
proc pixie_context_set_image*(context: Context, image: Image) {.raises: [], cdecl, exportc, dynlib.} =
context.image = image
proc pixie_context_get_fill_style*(context: Context): Paint {.raises: [], cdecl, exportc, dynlib.} =
context.fillStyle
proc pixie_context_set_fill_style*(context: Context, fillStyle: Paint) {.raises: [], cdecl, exportc, dynlib.} =
context.fillStyle = fillStyle
proc pixie_context_get_stroke_style*(context: Context): Paint {.raises: [], cdecl, exportc, dynlib.} =
context.strokeStyle
proc pixie_context_set_stroke_style*(context: Context, strokeStyle: Paint) {.raises: [], cdecl, exportc, dynlib.} =
context.strokeStyle = strokeStyle
proc pixie_context_get_global_alpha*(context: Context): float32 {.raises: [], cdecl, exportc, dynlib.} =
context.globalAlpha
proc pixie_context_set_global_alpha*(context: Context, globalAlpha: float32) {.raises: [], cdecl, exportc, dynlib.} =
context.globalAlpha = globalAlpha
proc pixie_context_get_line_width*(context: Context): float32 {.raises: [], cdecl, exportc, dynlib.} =
context.lineWidth
proc pixie_context_set_line_width*(context: Context, lineWidth: float32) {.raises: [], cdecl, exportc, dynlib.} =
context.lineWidth = lineWidth
proc pixie_context_get_miter_limit*(context: Context): float32 {.raises: [], cdecl, exportc, dynlib.} =
context.miterLimit
proc pixie_context_set_miter_limit*(context: Context, miterLimit: float32) {.raises: [], cdecl, exportc, dynlib.} =
context.miterLimit = miterLimit
proc pixie_context_get_line_cap*(context: Context): LineCap {.raises: [], cdecl, exportc, dynlib.} =
context.lineCap
proc pixie_context_set_line_cap*(context: Context, lineCap: LineCap) {.raises: [], cdecl, exportc, dynlib.} =
context.lineCap = lineCap
proc pixie_context_get_line_join*(context: Context): LineJoin {.raises: [], cdecl, exportc, dynlib.} =
context.lineJoin
proc pixie_context_set_line_join*(context: Context, lineJoin: LineJoin) {.raises: [], cdecl, exportc, dynlib.} =
context.lineJoin = lineJoin
proc pixie_context_get_font*(context: Context): cstring {.raises: [], cdecl, exportc, dynlib.} =
context.font.cstring
proc pixie_context_set_font*(context: Context, font: cstring) {.raises: [], cdecl, exportc, dynlib.} =
context.font = font.`$`
proc pixie_context_get_font_size*(context: Context): float32 {.raises: [], cdecl, exportc, dynlib.} =
context.fontSize
proc pixie_context_set_font_size*(context: Context, fontSize: float32) {.raises: [], cdecl, exportc, dynlib.} =
context.fontSize = fontSize
proc pixie_context_get_text_align*(context: Context): HorizontalAlignment {.raises: [], cdecl, exportc, dynlib.} =
context.textAlign
proc pixie_context_set_text_align*(context: Context, textAlign: HorizontalAlignment) {.raises: [], cdecl, exportc, dynlib.} =
context.textAlign = textAlign
proc pixie_context_line_dash_len*(context: Context): int {.raises: [], cdecl, exportc, dynlib.} =
context.lineDash.len
proc pixie_context_line_dash_add*(context: Context, v: float32) {.raises: [], cdecl, exportc, dynlib.} =
context.lineDash.add(v)
proc pixie_context_line_dash_get*(context: Context, i: int): float32 {.raises: [], cdecl, exportc, dynlib.} =
context.lineDash[i]
proc pixie_context_line_dash_set*(context: Context, i: int, v: float32) {.raises: [], cdecl, exportc, dynlib.} =
context.lineDash[i] = v
proc pixie_context_line_dash_remove*(context: Context, i: int) {.raises: [], cdecl, exportc, dynlib.} =
context.lineDash.delete(i)
proc pixie_context_line_dash_clear*(context: Context) {.raises: [], cdecl, exportc, dynlib.} =
context.lineDash.setLen(0)
proc pixie_context_save*(ctx: Context) {.raises: [], cdecl, exportc, dynlib.} =
try:
save(ctx)
except PixieError as e:
lastError = e
proc pixie_context_save_layer*(ctx: Context) {.raises: [], cdecl, exportc, dynlib.} =
try:
saveLayer(ctx)
except PixieError as e:
lastError = e
proc pixie_context_restore*(ctx: Context) {.raises: [], cdecl, exportc, dynlib.} =
try:
restore(ctx)
except PixieError as e:
lastError = e
proc pixie_context_begin_path*(ctx: Context) {.raises: [], cdecl, exportc, dynlib.} =
beginPath(ctx)
proc pixie_context_close_path*(ctx: Context) {.raises: [], cdecl, exportc, dynlib.} =
closePath(ctx)
proc pixie_context_path_fill*(ctx: Context, path: Path, winding_rule: WindingRule) {.raises: [], cdecl, exportc, dynlib.} =
try:
fill(ctx, path, winding_rule)
except PixieError as e:
lastError = e
proc pixie_context_winding_rule_fill*(ctx: Context, winding_rule: WindingRule) {.raises: [], cdecl, exportc, dynlib.} =
try:
fill(ctx, winding_rule)
except PixieError as e:
lastError = e
proc pixie_context_path_clip*(ctx: Context, path: Path, winding_rule: WindingRule) {.raises: [], cdecl, exportc, dynlib.} =
try:
clip(ctx, path, winding_rule)
except PixieError as e:
lastError = e
proc pixie_context_winding_rule_clip*(ctx: Context, winding_rule: WindingRule) {.raises: [], cdecl, exportc, dynlib.} =
try:
clip(ctx, winding_rule)
except PixieError as e:
lastError = e
proc pixie_context_path_stroke*(ctx: Context, path: Path) {.raises: [], cdecl, exportc, dynlib.} =
try:
stroke(ctx, path)
except PixieError as e:
lastError = e
proc pixie_context_stroke*(ctx: Context) {.raises: [], cdecl, exportc, dynlib.} =
try:
stroke(ctx)
except PixieError as e:
lastError = e
proc pixie_context_measure_text*(ctx: Context, text: cstring): TextMetrics {.raises: [], cdecl, exportc, dynlib.} =
try:
result = measureText(ctx, text.`$`)
except PixieError as e:
lastError = e
proc pixie_context_get_transform*(ctx: Context): Mat3 {.raises: [], cdecl, exportc, dynlib.} =
getTransform(ctx)
proc pixie_context_set_transform*(ctx: Context, transform: Mat3) {.raises: [], cdecl, exportc, dynlib.} =
setTransform(ctx, transform)
proc pixie_context_transform*(ctx: Context, transform: Mat3) {.raises: [], cdecl, exportc, dynlib.} =
transform(ctx, transform)
proc pixie_context_reset_transform*(ctx: Context) {.raises: [], cdecl, exportc, dynlib.} =
resetTransform(ctx)
proc pixie_context_draw_image1*(ctx: Context, image: Image, dx: float32, dy: float32) {.raises: [], cdecl, exportc, dynlib.} =
try:
drawImage1(ctx, image, dx, dy)
except PixieError as e:
lastError = e
proc pixie_context_draw_image2*(ctx: Context, image: Image, dx: float32, dy: float32, d_width: float32, d_height: float32) {.raises: [], cdecl, exportc, dynlib.} =
try:
drawImage2(ctx, image, dx, dy, d_width, d_height)
except PixieError as e:
lastError = e
proc pixie_context_draw_image3*(ctx: Context, image: Image, sx: float32, sy: float32, s_width: float32, s_height: float32, dx: float32, dy: float32, d_width: float32, d_height: float32) {.raises: [], cdecl, exportc, dynlib.} =
try:
drawImage3(ctx, image, sx, sy, s_width, s_height, dx, dy, d_width, d_height)
except PixieError as e:
lastError = e
proc pixie_context_move_to*(ctx: Context, x: float32, y: float32) {.raises: [], cdecl, exportc, dynlib.} =
moveTo(ctx, x, y)
proc pixie_context_line_to*(ctx: Context, x: float32, y: float32) {.raises: [], cdecl, exportc, dynlib.} =
lineTo(ctx, x, y)
proc pixie_context_bezier_curve_to*(ctx: Context, cp1x: float32, cp1y: float32, cp2x: float32, cp2y: float32, x: float32, y: float32) {.raises: [], cdecl, exportc, dynlib.} =
bezierCurveTo(ctx, cp1x, cp1y, cp2x, cp2y, x, y)
proc pixie_context_quadratic_curve_to*(ctx: Context, cpx: float32, cpy: float32, x: float32, y: float32) {.raises: [], cdecl, exportc, dynlib.} =
quadraticCurveTo(ctx, cpx, cpy, x, y)
proc pixie_context_arc*(ctx: Context, x: float32, y: float32, r: float32, a0: float32, a1: float32, ccw: bool) {.raises: [], cdecl, exportc, dynlib.} =
try:
arc(ctx, x, y, r, a0, a1, ccw)
except PixieError as e:
lastError = e
proc pixie_context_arc_to*(ctx: Context, x1: float32, y1: float32, x2: float32, y2: float32, radius: float32) {.raises: [], cdecl, exportc, dynlib.} =
try:
arcTo(ctx, x1, y1, x2, y2, radius)
except PixieError as e:
lastError = e
proc pixie_context_rect*(ctx: Context, x: float32, y: float32, width: float32, height: float32) {.raises: [], cdecl, exportc, dynlib.} =
rect(ctx, x, y, width, height)
proc pixie_context_rounded_rect*(ctx: Context, x: float32, y: float32, w: float32, h: float32, nw: float32, ne: float32, se: float32, sw: float32) {.raises: [], cdecl, exportc, dynlib.} =
roundedRect(ctx, x, y, w, h, nw, ne, se, sw)
proc pixie_context_ellipse*(ctx: Context, x: float32, y: float32, rx: float32, ry: float32) {.raises: [], cdecl, exportc, dynlib.} =
ellipse(ctx, x, y, rx, ry)
proc pixie_context_circle*(ctx: Context, cx: float32, cy: float32, r: float32) {.raises: [], cdecl, exportc, dynlib.} =
circle(ctx, cx, cy, r)
proc pixie_context_polygon*(ctx: Context, x: float32, y: float32, size: float32, sides: int) {.raises: [], cdecl, exportc, dynlib.} =
polygon(ctx, x, y, size, sides)
proc pixie_context_clear_rect*(ctx: Context, x: float32, y: float32, width: float32, height: float32) {.raises: [], cdecl, exportc, dynlib.} =
try:
clearRect(ctx, x, y, width, height)
except PixieError as e:
lastError = e
proc pixie_context_fill_rect*(ctx: Context, x: float32, y: float32, width: float32, height: float32) {.raises: [], cdecl, exportc, dynlib.} =
try:
fillRect(ctx, x, y, width, height)
except PixieError as e:
lastError = e
proc pixie_context_stroke_rect*(ctx: Context, x: float32, y: float32, width: float32, height: float32) {.raises: [], cdecl, exportc, dynlib.} =
try:
strokeRect(ctx, x, y, width, height)
except PixieError as e:
lastError = e
proc pixie_context_fill_text*(ctx: Context, text: cstring, x: float32, y: float32) {.raises: [], cdecl, exportc, dynlib.} =
try:
fillText(ctx, text.`$`, x, y)
except PixieError as e:
lastError = e
proc pixie_context_stroke_text*(ctx: Context, text: cstring, x: float32, y: float32) {.raises: [], cdecl, exportc, dynlib.} =
try:
strokeText(ctx, text.`$`, x, y)
except PixieError as e:
lastError = e
proc pixie_context_translate*(ctx: Context, x: float32, y: float32) {.raises: [], cdecl, exportc, dynlib.} =
translate(ctx, x, y)
proc pixie_context_scale*(ctx: Context, x: float32, y: float32) {.raises: [], cdecl, exportc, dynlib.} =
scale(ctx, x, y)
proc pixie_context_rotate*(ctx: Context, angle: float32) {.raises: [], cdecl, exportc, dynlib.} =
rotate(ctx, angle)
proc pixie_context_is_point_in_path*(ctx: Context, x: float32, y: float32, winding_rule: WindingRule): bool {.raises: [], cdecl, exportc, dynlib.} =
try:
result = isPointInPath(ctx, x, y, winding_rule)
except PixieError as e:
lastError = e
proc pixie_context_is_point_in_stroke*(ctx: Context, x: float32, y: float32): bool {.raises: [], cdecl, exportc, dynlib.} =
try:
result = isPointInStroke(ctx, x, y)
except PixieError as e:
lastError = e
proc pixie_new_image*(width: int, height: int): Image {.raises: [], cdecl, exportc, dynlib.} =
try:
result = newImage(width, height)
except PixieError as e:
lastError = e
proc pixie_new_mask*(width: int, height: int): Mask {.raises: [], cdecl, exportc, dynlib.} =
try:
result = newMask(width, height)
except PixieError as e:
lastError = e
proc pixie_new_paint*(kind: PaintKind): Paint {.raises: [], cdecl, exportc, dynlib.} =
newPaint(kind)
proc pixie_new_path*(): Path {.raises: [], cdecl, exportc, dynlib.} =
newPath()
proc pixie_new_span*(text: cstring, font: Font): Span {.raises: [], cdecl, exportc, dynlib.} =
newSpan(text.`$`, font)
proc pixie_new_context*(width: int, height: int): Context {.raises: [], cdecl, exportc, dynlib.} =
try:
result = newContext(width, height)
except PixieError as e:
lastError = e
proc pixie_read_image*(file_path: cstring): Image {.raises: [], cdecl, exportc, dynlib.} =
try:
result = readImage(file_path.`$`)
except PixieError as e:
lastError = e
proc pixie_read_mask*(file_path: cstring): Mask {.raises: [], cdecl, exportc, dynlib.} =
try:
result = readMask(file_path.`$`)
except PixieError as e:
lastError = e
proc pixie_read_typeface*(file_path: cstring): Typeface {.raises: [], cdecl, exportc, dynlib.} =
try:
result = readTypeface(file_path.`$`)
except PixieError as e:
lastError = e
proc pixie_read_font*(file_path: cstring): Font {.raises: [], cdecl, exportc, dynlib.} =
try:
result = readFont(file_path.`$`)
except PixieError as e:
lastError = e
proc pixie_parse_path*(path: cstring): Path {.raises: [], cdecl, exportc, dynlib.} =
try:
result = parsePath(path.`$`)
except PixieError as e:
lastError = e
proc pixie_miter_limit_to_angle*(limit: float32): float32 {.raises: [], cdecl, exportc, dynlib.} =
miterLimitToAngle(limit)
proc pixie_angle_to_miter_limit*(angle: float32): float32 {.raises: [], cdecl, exportc, dynlib.} =
angleToMiterLimit(angle)

1394
bindings/generated/pixie.nim Normal file

File diff suppressed because it is too large Load diff

View file

@ -15,3 +15,6 @@ requires "bumpy >= 1.0.3"
task docs, "Generate API documents":
exec "nim doc --index:on --project --out:docs --hints:off src/pixie.nim"
task bindings, "Generate bindings":
exec "nim c -f -d:release --app:lib --gc:arc --tlsEmulation:off --out:pixie --outdir:bindings/generated bindings/bindings.nim"