simple api attempt 1
This commit is contained in:
parent
9d2dc5c06f
commit
082f16096f
|
@ -317,3 +317,46 @@ proc strokePolygon*(
|
||||||
var path: Path
|
var path: Path
|
||||||
path.polygon(pos, size, sides)
|
path.polygon(pos, size, sides)
|
||||||
mask.strokePath(path, strokeWidth)
|
mask.strokePath(path, strokeWidth)
|
||||||
|
|
||||||
|
proc fillText*(
|
||||||
|
image: Image,
|
||||||
|
font: Font,
|
||||||
|
text: string,
|
||||||
|
color: SomeColor,
|
||||||
|
transform: Vec2 | Mat3 = vec2(0, 0)
|
||||||
|
) =
|
||||||
|
for path in font.typeset(text):
|
||||||
|
image.fillPath(path, color, transform)
|
||||||
|
|
||||||
|
proc fillText*(
|
||||||
|
mask: Mask,
|
||||||
|
font: Font,
|
||||||
|
text: string,
|
||||||
|
color: SomeColor,
|
||||||
|
transform: Vec2 | Mat3 = vec2(0, 0)
|
||||||
|
) =
|
||||||
|
for path in font.typeset(text):
|
||||||
|
mask.fillPath(path, transform)
|
||||||
|
|
||||||
|
proc strokeText*(
|
||||||
|
image: Image,
|
||||||
|
font: Font,
|
||||||
|
text: string,
|
||||||
|
pos = vec2(0, 0),
|
||||||
|
color: SomeColor,
|
||||||
|
transform: Vec2 | Mat3 = vec2(0, 0),
|
||||||
|
strokeWidth = 1.0
|
||||||
|
) =
|
||||||
|
for path in font.typeset(text):
|
||||||
|
image.strokePath(path, color, transform, strokeWidth)
|
||||||
|
|
||||||
|
proc strokeText*(
|
||||||
|
mask: Mask,
|
||||||
|
font: Font,
|
||||||
|
text: string,
|
||||||
|
color: SomeColor,
|
||||||
|
transform: Vec2 | Mat3 = vec2(0, 0),
|
||||||
|
strokeWidth = 1.0
|
||||||
|
) =
|
||||||
|
for path in font.typeset(text):
|
||||||
|
mask.strokePath(path, transform, strokeWidth)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import common, random, pixie, strformat, unicode
|
import common, pixie, random, strformat, unicode
|
||||||
|
|
||||||
randomize()
|
randomize()
|
||||||
|
|
||||||
|
|
|
@ -11,14 +11,9 @@ block:
|
||||||
let font = readFont("tests/fonts/Roboto-Regular.ttf")
|
let font = readFont("tests/fonts/Roboto-Regular.ttf")
|
||||||
font.size = 72
|
font.size = 72
|
||||||
|
|
||||||
let
|
let image = newImage(200, 100)
|
||||||
image = newImage(200, 100)
|
|
||||||
layout = font.typeset("asdf")
|
|
||||||
|
|
||||||
image.fill(rgba(255, 255, 255, 255))
|
image.fill(rgba(255, 255, 255, 255))
|
||||||
|
image.fillText(font, "asdf", rgba(0, 0, 0, 255))
|
||||||
for path in layout:
|
|
||||||
image.fillPath(path, rgba(0, 0, 0, 255))
|
|
||||||
|
|
||||||
doDiff(image, "basic1")
|
doDiff(image, "basic1")
|
||||||
|
|
||||||
|
@ -26,14 +21,9 @@ block:
|
||||||
let font = readFont("tests/fonts/Roboto-Regular.ttf")
|
let font = readFont("tests/fonts/Roboto-Regular.ttf")
|
||||||
font.size = 72
|
font.size = 72
|
||||||
|
|
||||||
let
|
let image = newImage(200, 100)
|
||||||
image = newImage(200, 100)
|
|
||||||
layout = font.typeset("A cow")
|
|
||||||
|
|
||||||
image.fill(rgba(255, 255, 255, 255))
|
image.fill(rgba(255, 255, 255, 255))
|
||||||
|
image.fillText(font, "A cow", rgba(0, 0, 0, 255))
|
||||||
for path in layout:
|
|
||||||
image.fillPath(path, rgba(0, 0, 0, 255))
|
|
||||||
|
|
||||||
doDiff(image, "basic2")
|
doDiff(image, "basic2")
|
||||||
|
|
||||||
|
@ -41,14 +31,9 @@ block:
|
||||||
let font = readFont("tests/fonts/Roboto-Regular.ttf")
|
let font = readFont("tests/fonts/Roboto-Regular.ttf")
|
||||||
font.size = 24
|
font.size = 24
|
||||||
|
|
||||||
let
|
let image = newImage(200, 100)
|
||||||
image = newImage(200, 100)
|
|
||||||
layout = font.typeset("A bit of text HERE")
|
|
||||||
|
|
||||||
image.fill(rgba(255, 255, 255, 255))
|
image.fill(rgba(255, 255, 255, 255))
|
||||||
|
image.fillText(font, "A bit of text HERE", rgba(0, 0, 0, 255))
|
||||||
for path in layout:
|
|
||||||
image.fillPath(path, rgba(0, 0, 0, 255))
|
|
||||||
|
|
||||||
doDiff(image, "basic3")
|
doDiff(image, "basic3")
|
||||||
|
|
||||||
|
@ -57,14 +42,9 @@ block:
|
||||||
font.size = 24
|
font.size = 24
|
||||||
font.lineHeight = 100
|
font.lineHeight = 100
|
||||||
|
|
||||||
let
|
let image = newImage(200, 100)
|
||||||
image = newImage(200, 100)
|
|
||||||
layout = font.typeset("Line height")
|
|
||||||
|
|
||||||
image.fill(rgba(255, 255, 255, 255))
|
image.fill(rgba(255, 255, 255, 255))
|
||||||
|
image.fillText(font, "Line height", rgba(0, 0, 0, 255))
|
||||||
for path in layout:
|
|
||||||
image.fillPath(path, rgba(0, 0, 0, 255))
|
|
||||||
|
|
||||||
doDiff(image, "basic4")
|
doDiff(image, "basic4")
|
||||||
|
|
||||||
|
@ -72,14 +52,9 @@ block:
|
||||||
let font = readFont("tests/fonts/Ubuntu-Regular.ttf")
|
let font = readFont("tests/fonts/Ubuntu-Regular.ttf")
|
||||||
font.size = 24
|
font.size = 24
|
||||||
|
|
||||||
let
|
let image = newImage(200, 100)
|
||||||
image = newImage(200, 100)
|
|
||||||
layout = font.typeset("Another font")
|
|
||||||
|
|
||||||
image.fill(rgba(255, 255, 255, 255))
|
image.fill(rgba(255, 255, 255, 255))
|
||||||
|
image.fillText(font, "Another font", rgba(0, 0, 0, 255))
|
||||||
for path in layout:
|
|
||||||
image.fillPath(path, rgba(0, 0, 0, 255))
|
|
||||||
|
|
||||||
doDiff(image, "basic5")
|
doDiff(image, "basic5")
|
||||||
|
|
||||||
|
@ -87,14 +62,9 @@ block:
|
||||||
let font = readFont("tests/fonts/Aclonica-Regular.ttf")
|
let font = readFont("tests/fonts/Aclonica-Regular.ttf")
|
||||||
font.size = 24
|
font.size = 24
|
||||||
|
|
||||||
let
|
let image = newImage(200, 100)
|
||||||
image = newImage(200, 100)
|
|
||||||
layout = font.typeset("Different font")
|
|
||||||
|
|
||||||
image.fill(rgba(255, 255, 255, 255))
|
image.fill(rgba(255, 255, 255, 255))
|
||||||
|
image.fillText(font, "Different font", rgba(0, 0, 0, 255))
|
||||||
for path in layout:
|
|
||||||
image.fillPath(path, rgba(0, 0, 0, 255))
|
|
||||||
|
|
||||||
doDiff(image, "basic6")
|
doDiff(image, "basic6")
|
||||||
|
|
||||||
|
@ -102,18 +72,19 @@ block:
|
||||||
let font = readFont("tests/fonts/Roboto-Regular.ttf")
|
let font = readFont("tests/fonts/Roboto-Regular.ttf")
|
||||||
font.size = 24
|
font.size = 24
|
||||||
|
|
||||||
let
|
let image = newImage(200, 100)
|
||||||
image = newImage(200, 100)
|
|
||||||
layout1 = font.typeset("First line")
|
|
||||||
layout2 = font.typeset("Second line")
|
|
||||||
|
|
||||||
image.fill(rgba(255, 255, 255, 255))
|
image.fill(rgba(255, 255, 255, 255))
|
||||||
|
image.fillText(
|
||||||
for path in layout1:
|
font,
|
||||||
image.fillPath(path, rgba(0, 0, 0, 255))
|
"First line",
|
||||||
|
rgba(0, 0, 0, 255)
|
||||||
for path in layout2:
|
)
|
||||||
image.fillPath(path, rgba(0, 0, 0, 255), vec2(0, font.defaultLineHeight))
|
image.fillText(
|
||||||
|
font,
|
||||||
|
"Second line",
|
||||||
|
rgba(0, 0, 0, 255),
|
||||||
|
vec2(0, font.defaultLineHeight)
|
||||||
|
)
|
||||||
|
|
||||||
doDiff(image, "basic7")
|
doDiff(image, "basic7")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue