From c7421e3e85822f7c6606a7e87c86f628ea442de0 Mon Sep 17 00:00:00 2001 From: Ryan Oldenburg Date: Thu, 26 Aug 2021 22:24:35 -0500 Subject: [PATCH] colorStop --- bindings/bindings.nim | 2 +- bindings/generated/internal.nim | 3 +++ bindings/generated/pixie.nim | 5 +++++ bindings/generated/pixie.py | 8 ++++++++ src/pixie/paints.nim | 3 +++ 5 files changed, 20 insertions(+), 1 deletion(-) diff --git a/bindings/bindings.nim b/bindings/bindings.nim index 3ad290e..32d234b 100644 --- a/bindings/bindings.nim +++ b/bindings/bindings.nim @@ -77,7 +77,7 @@ exportObject Color: discard exportObject ColorStop: - discard + discard colorStop(Color(), 0) exportObject TextMetrics: discard diff --git a/bindings/generated/internal.nim b/bindings/generated/internal.nim index aae6631..733a1f5 100644 --- a/bindings/generated/internal.nim +++ b/bindings/generated/internal.nim @@ -10,6 +10,9 @@ proc pixie_vector_2*(x: float32, y: float32): Vector2 {.raises: [], cdecl, expor proc pixie_matrix_3*(): Matrix3 {.raises: [], cdecl, exportc, dynlib.} = matrix3() +proc pixie_color_stop*(color: Color, position: float32): ColorStop {.raises: [], cdecl, exportc, dynlib.} = + colorStop(color, position) + type SeqFloat32* = ref object s: seq[float32] diff --git a/bindings/generated/pixie.nim b/bindings/generated/pixie.nim index 0d59c38..851771f 100644 --- a/bindings/generated/pixie.nim +++ b/bindings/generated/pixie.nim @@ -210,6 +210,11 @@ proc pixie_take_error(): cstring {.importc: "pixie_take_error", cdecl.} proc takeError*(): cstring {.inline.} = result = pixie_take_error() +proc pixie_color_stop(color: Color, position: float32): ColorStop {.importc: "pixie_color_stop", cdecl.} + +proc colorStop*(color: Color, position: float32): ColorStop {.inline.} = + result = pixie_color_stop(color, position) + proc pixie_seq_float_32_len(s: SeqFloat32): int {.importc: "pixie_seq_float_32_len", cdecl.} proc len*(s: SeqFloat32): int = diff --git a/bindings/generated/pixie.py b/bindings/generated/pixie.py index 95c4f76..737e78a 100644 --- a/bindings/generated/pixie.py +++ b/bindings/generated/pixie.py @@ -164,6 +164,11 @@ class ColorStop(Structure): ("position", c_float) ] + def __init__(self, color, position): + tmp = dll.pixie_color_stop(color, position) + self.color = tmp.color + self.position = tmp.position + def __eq__(self, obj): self.color == obj.color and self.position == obj.position @@ -1288,6 +1293,9 @@ dll.pixie_vector_2.restype = Vector2 dll.pixie_matrix_3.argtypes = [] dll.pixie_matrix_3.restype = Matrix3 +dll.pixie_color_stop.argtypes = [Color, c_float] +dll.pixie_color_stop.restype = ColorStop + dll.pixie_seq_float_32_unref.argtypes = [SeqFloat32] dll.pixie_seq_float_32_unref.restype = None diff --git a/src/pixie/paints.nim b/src/pixie/paints.nim index 88882c0..9baeda7 100644 --- a/src/pixie/paints.nim +++ b/src/pixie/paints.nim @@ -64,6 +64,9 @@ converter parseSomePaint*( elif type(paint) is Paint: paint +proc colorStop*(color: Color, position: float32): ColorStop = + ColorStop(color: color, position: position) + proc toLineSpace(at, to, point: Vec2): float32 {.inline.} = ## Convert position on to where it would fall on a line between at and to. let