diff --git a/tests/fonts/diffs/basic10.png b/tests/fonts/diffs/basic10.png new file mode 100644 index 0000000..99e1968 Binary files /dev/null and b/tests/fonts/diffs/basic10.png differ diff --git a/tests/fonts/diffs/huge1.png b/tests/fonts/diffs/huge1.png index 6d1992d..a036ba6 100644 Binary files a/tests/fonts/diffs/huge1.png and b/tests/fonts/diffs/huge1.png differ diff --git a/tests/fonts/diffs/huge1_nokern.png b/tests/fonts/diffs/huge1_nokern.png index b34abf6..ef81d2d 100644 Binary files a/tests/fonts/diffs/huge1_nokern.png and b/tests/fonts/diffs/huge1_nokern.png differ diff --git a/tests/fonts/diffs/huge2.png b/tests/fonts/diffs/huge2.png index 87400d9..9cce532 100644 Binary files a/tests/fonts/diffs/huge2.png and b/tests/fonts/diffs/huge2.png differ diff --git a/tests/fonts/diffs/huge2_nokern.png b/tests/fonts/diffs/huge2_nokern.png index 55e22a7..ba3f8c5 100644 Binary files a/tests/fonts/diffs/huge2_nokern.png and b/tests/fonts/diffs/huge2_nokern.png differ diff --git a/tests/fonts/diffs/huge3.png b/tests/fonts/diffs/huge3.png index 96c3f7f..36eefbd 100644 Binary files a/tests/fonts/diffs/huge3.png and b/tests/fonts/diffs/huge3.png differ diff --git a/tests/fonts/diffs/huge3_nokern.png b/tests/fonts/diffs/huge3_nokern.png index 30c22f5..1103fe0 100644 Binary files a/tests/fonts/diffs/huge3_nokern.png and b/tests/fonts/diffs/huge3_nokern.png differ diff --git a/tests/fonts/diffs/image_fill.png b/tests/fonts/diffs/image_fill.png new file mode 100644 index 0000000..c8ddd62 Binary files /dev/null and b/tests/fonts/diffs/image_fill.png differ diff --git a/tests/fonts/diffs/image_paint_fill.png b/tests/fonts/diffs/image_paint_fill.png new file mode 100644 index 0000000..5561a1c Binary files /dev/null and b/tests/fonts/diffs/image_paint_fill.png differ diff --git a/tests/fonts/diffs/image_stroke.png b/tests/fonts/diffs/image_stroke.png new file mode 100644 index 0000000..5c684a2 Binary files /dev/null and b/tests/fonts/diffs/image_stroke.png differ diff --git a/tests/fonts/diffs/mask_fill.png b/tests/fonts/diffs/mask_fill.png new file mode 100644 index 0000000..bbb4660 Binary files /dev/null and b/tests/fonts/diffs/mask_fill.png differ diff --git a/tests/fonts/diffs/mask_stroke.png b/tests/fonts/diffs/mask_stroke.png new file mode 100644 index 0000000..fd3da2b Binary files /dev/null and b/tests/fonts/diffs/mask_stroke.png differ diff --git a/tests/fonts/diffs/pairs1.png b/tests/fonts/diffs/pairs1.png index 14a7a6b..239955f 100644 Binary files a/tests/fonts/diffs/pairs1.png and b/tests/fonts/diffs/pairs1.png differ diff --git a/tests/fonts/diffs/pairs2.png b/tests/fonts/diffs/pairs2.png index 0fd4461..b6ee00a 100644 Binary files a/tests/fonts/diffs/pairs2.png and b/tests/fonts/diffs/pairs2.png differ diff --git a/tests/fonts/diffs/pairs3.png b/tests/fonts/diffs/pairs3.png index 6af8d07..c38f7ef 100644 Binary files a/tests/fonts/diffs/pairs3.png and b/tests/fonts/diffs/pairs3.png differ diff --git a/tests/fonts/diffs/selection_rects1.png b/tests/fonts/diffs/selection_rects1.png index 63130fc..9a2a151 100644 Binary files a/tests/fonts/diffs/selection_rects1.png and b/tests/fonts/diffs/selection_rects1.png differ diff --git a/tests/fonts/diffs/selection_rects2.png b/tests/fonts/diffs/selection_rects2.png index 5adf0a9..31836af 100644 Binary files a/tests/fonts/diffs/selection_rects2.png and b/tests/fonts/diffs/selection_rects2.png differ diff --git a/tests/fonts/diffs/selection_rects3.png b/tests/fonts/diffs/selection_rects3.png index 8349b78..34e30f1 100644 Binary files a/tests/fonts/diffs/selection_rects3.png and b/tests/fonts/diffs/selection_rects3.png differ diff --git a/tests/fonts/image_paint_fill.png b/tests/fonts/image_paint_fill.png deleted file mode 100644 index 32016d9..0000000 Binary files a/tests/fonts/image_paint_fill.png and /dev/null differ diff --git a/tests/fonts/mask_fill.png b/tests/fonts/mask_fill.png deleted file mode 100644 index 283b7e4..0000000 Binary files a/tests/fonts/mask_fill.png and /dev/null differ diff --git a/tests/fonts/mask_stroke.png b/tests/fonts/mask_stroke.png deleted file mode 100644 index 01b15c2..0000000 Binary files a/tests/fonts/mask_stroke.png and /dev/null differ diff --git a/tests/fonts/masters/basic10.png b/tests/fonts/masters/basic10.png new file mode 100644 index 0000000..675269b Binary files /dev/null and b/tests/fonts/masters/basic10.png differ diff --git a/tests/fonts/masters/huge1.png b/tests/fonts/masters/huge1.png index fb83009..dc2eab9 100644 Binary files a/tests/fonts/masters/huge1.png and b/tests/fonts/masters/huge1.png differ diff --git a/tests/fonts/masters/huge1_nokern.png b/tests/fonts/masters/huge1_nokern.png index a6200f5..0e2f82a 100644 Binary files a/tests/fonts/masters/huge1_nokern.png and b/tests/fonts/masters/huge1_nokern.png differ diff --git a/tests/fonts/masters/huge2.png b/tests/fonts/masters/huge2.png index 5f5ae91..285a597 100644 Binary files a/tests/fonts/masters/huge2.png and b/tests/fonts/masters/huge2.png differ diff --git a/tests/fonts/masters/huge2_nokern.png b/tests/fonts/masters/huge2_nokern.png index aa15e3b..5e0dcbe 100644 Binary files a/tests/fonts/masters/huge2_nokern.png and b/tests/fonts/masters/huge2_nokern.png differ diff --git a/tests/fonts/masters/huge3.png b/tests/fonts/masters/huge3.png index a646cae..51e3936 100644 Binary files a/tests/fonts/masters/huge3.png and b/tests/fonts/masters/huge3.png differ diff --git a/tests/fonts/masters/huge3_nokern.png b/tests/fonts/masters/huge3_nokern.png index 3eb6d2a..0ddb83a 100644 Binary files a/tests/fonts/masters/huge3_nokern.png and b/tests/fonts/masters/huge3_nokern.png differ diff --git a/tests/fonts/masters/image_fill.png b/tests/fonts/masters/image_fill.png new file mode 100644 index 0000000..8e80552 Binary files /dev/null and b/tests/fonts/masters/image_fill.png differ diff --git a/tests/fonts/masters/image_paint_fill.png b/tests/fonts/masters/image_paint_fill.png new file mode 100644 index 0000000..3ed63c8 Binary files /dev/null and b/tests/fonts/masters/image_paint_fill.png differ diff --git a/tests/fonts/masters/image_stroke.png b/tests/fonts/masters/image_stroke.png new file mode 100644 index 0000000..58d29a1 Binary files /dev/null and b/tests/fonts/masters/image_stroke.png differ diff --git a/tests/fonts/masters/mask_fill.png b/tests/fonts/masters/mask_fill.png new file mode 100644 index 0000000..670bf7e Binary files /dev/null and b/tests/fonts/masters/mask_fill.png differ diff --git a/tests/fonts/masters/mask_stroke.png b/tests/fonts/masters/mask_stroke.png new file mode 100644 index 0000000..16b78f5 Binary files /dev/null and b/tests/fonts/masters/mask_stroke.png differ diff --git a/tests/fonts/masters/pairs1.png b/tests/fonts/masters/pairs1.png index c8bcde9..6b15f8c 100644 Binary files a/tests/fonts/masters/pairs1.png and b/tests/fonts/masters/pairs1.png differ diff --git a/tests/fonts/masters/pairs2.png b/tests/fonts/masters/pairs2.png index 71bc2e5..fce4750 100644 Binary files a/tests/fonts/masters/pairs2.png and b/tests/fonts/masters/pairs2.png differ diff --git a/tests/fonts/masters/pairs3.png b/tests/fonts/masters/pairs3.png index 680ba3f..0caed7d 100644 Binary files a/tests/fonts/masters/pairs3.png and b/tests/fonts/masters/pairs3.png differ diff --git a/tests/fonts/masters/selection_rects1.png b/tests/fonts/masters/selection_rects1.png index a5fdfef..5ba5521 100644 Binary files a/tests/fonts/masters/selection_rects1.png and b/tests/fonts/masters/selection_rects1.png differ diff --git a/tests/fonts/masters/selection_rects2.png b/tests/fonts/masters/selection_rects2.png index 7ff88fd..4948232 100644 Binary files a/tests/fonts/masters/selection_rects2.png and b/tests/fonts/masters/selection_rects2.png differ diff --git a/tests/fonts/masters/selection_rects3.png b/tests/fonts/masters/selection_rects3.png index ed80e33..bc07354 100644 Binary files a/tests/fonts/masters/selection_rects3.png and b/tests/fonts/masters/selection_rects3.png differ diff --git a/tests/fonts/rendered/basic10.png b/tests/fonts/rendered/basic10.png new file mode 100644 index 0000000..49f8753 Binary files /dev/null and b/tests/fonts/rendered/basic10.png differ diff --git a/tests/fonts/rendered/huge1.png b/tests/fonts/rendered/huge1.png index 35937d6..f771b41 100644 Binary files a/tests/fonts/rendered/huge1.png and b/tests/fonts/rendered/huge1.png differ diff --git a/tests/fonts/rendered/huge1_nokern.png b/tests/fonts/rendered/huge1_nokern.png index 5abcf43..3c40854 100644 Binary files a/tests/fonts/rendered/huge1_nokern.png and b/tests/fonts/rendered/huge1_nokern.png differ diff --git a/tests/fonts/rendered/huge2.png b/tests/fonts/rendered/huge2.png index a5c96f5..6dc46ee 100644 Binary files a/tests/fonts/rendered/huge2.png and b/tests/fonts/rendered/huge2.png differ diff --git a/tests/fonts/rendered/huge2_nokern.png b/tests/fonts/rendered/huge2_nokern.png index 9586c13..513bfe7 100644 Binary files a/tests/fonts/rendered/huge2_nokern.png and b/tests/fonts/rendered/huge2_nokern.png differ diff --git a/tests/fonts/rendered/huge3.png b/tests/fonts/rendered/huge3.png index 6559e33..8cfbebb 100644 Binary files a/tests/fonts/rendered/huge3.png and b/tests/fonts/rendered/huge3.png differ diff --git a/tests/fonts/rendered/huge3_nokern.png b/tests/fonts/rendered/huge3_nokern.png index f4d6e7a..30cf509 100644 Binary files a/tests/fonts/rendered/huge3_nokern.png and b/tests/fonts/rendered/huge3_nokern.png differ diff --git a/tests/fonts/image_fill.png b/tests/fonts/rendered/image_fill.png similarity index 100% rename from tests/fonts/image_fill.png rename to tests/fonts/rendered/image_fill.png diff --git a/tests/fonts/rendered/image_paint_fill.png b/tests/fonts/rendered/image_paint_fill.png new file mode 100644 index 0000000..63d8515 Binary files /dev/null and b/tests/fonts/rendered/image_paint_fill.png differ diff --git a/tests/fonts/image_stroke.png b/tests/fonts/rendered/image_stroke.png similarity index 100% rename from tests/fonts/image_stroke.png rename to tests/fonts/rendered/image_stroke.png diff --git a/tests/fonts/rendered/mask_fill.png b/tests/fonts/rendered/mask_fill.png new file mode 100644 index 0000000..0079fbf Binary files /dev/null and b/tests/fonts/rendered/mask_fill.png differ diff --git a/tests/fonts/rendered/mask_stroke.png b/tests/fonts/rendered/mask_stroke.png new file mode 100644 index 0000000..17bfc7d Binary files /dev/null and b/tests/fonts/rendered/mask_stroke.png differ diff --git a/tests/fonts/rendered/pairs1.png b/tests/fonts/rendered/pairs1.png index c6ce3e4..41f37f4 100644 Binary files a/tests/fonts/rendered/pairs1.png and b/tests/fonts/rendered/pairs1.png differ diff --git a/tests/fonts/rendered/pairs2.png b/tests/fonts/rendered/pairs2.png index c3c534f..2b79a52 100644 Binary files a/tests/fonts/rendered/pairs2.png and b/tests/fonts/rendered/pairs2.png differ diff --git a/tests/fonts/rendered/pairs3.png b/tests/fonts/rendered/pairs3.png index f77bfe3..059920d 100644 Binary files a/tests/fonts/rendered/pairs3.png and b/tests/fonts/rendered/pairs3.png differ diff --git a/tests/fonts/rendered/selection_rects1.png b/tests/fonts/rendered/selection_rects1.png index b8ad7cb..44ffe5b 100644 Binary files a/tests/fonts/rendered/selection_rects1.png and b/tests/fonts/rendered/selection_rects1.png differ diff --git a/tests/fonts/rendered/selection_rects2.png b/tests/fonts/rendered/selection_rects2.png index 2beafc5..74fc315 100644 Binary files a/tests/fonts/rendered/selection_rects2.png and b/tests/fonts/rendered/selection_rects2.png differ diff --git a/tests/fonts/rendered/selection_rects3.png b/tests/fonts/rendered/selection_rects3.png index 1f58ba3..06ff77e 100644 Binary files a/tests/fonts/rendered/selection_rects3.png and b/tests/fonts/rendered/selection_rects3.png differ diff --git a/tests/test_fonts.nim b/tests/test_fonts.nim index e50214f..df574dc 100644 --- a/tests/test_fonts.nim +++ b/tests/test_fonts.nim @@ -21,7 +21,8 @@ block: let image = newImage(200, 100) image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "fill") - image.writeFile("tests/fonts/image_fill.png") + + doDiff(image, "image_fill") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -29,56 +30,61 @@ block: let image = newImage(200, 100) image.fill(rgba(255, 255, 255, 255)) image.strokeText(font, "stroke") - image.writeFile("tests/fonts/image_stroke.png") + + doDiff(image, "image_stroke") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") font.size = 64 let mask = newMask(200, 100) mask.fillText(font, "fill") - writeFile("tests/fonts/mask_fill.png", mask.encodePng()) + + doDiff(newImage(mask), "mask_fill") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") font.size = 64 let mask = newMask(200, 100) mask.strokeText(font, "stroke") - writeFile("tests/fonts/mask_stroke.png", mask.encodePng()) + + doDiff(newImage(mask), "mask_stroke") block: - var font = readFont("tests/fonts/Changa-Bold.svg") - font.size = 48 - let mask = newMask(200, 100) - mask.fillText(font, "Changa") - writeFile("tests/fonts/svg_changa.png", mask.encodePng()) + # SVG Fonts have no masters + block: + var font = readFont("tests/fonts/Changa-Bold.svg") + font.size = 48 + let mask = newMask(200, 100) + mask.fillText(font, "Changa") + writeFile("tests/fonts/svg_changa.png", mask.encodePng()) -block: - var font = readFont("tests/fonts/DejaVuSans.svg") - font.size = 48 - let mask = newMask(200, 100) - mask.fillText(font, "Deja vu ") - writeFile("tests/fonts/svg_dejavu.png", mask.encodePng()) + block: + var font = readFont("tests/fonts/DejaVuSans.svg") + font.size = 48 + let mask = newMask(200, 100) + mask.fillText(font, "Deja vu ") + writeFile("tests/fonts/svg_dejavu.png", mask.encodePng()) -block: - var font = readFont("tests/fonts/IBMPlexSans-Regular.svg") - font.size = 48 - let mask = newMask(200, 100) - mask.fillText(font, "IBM ") - writeFile("tests/fonts/svg_ibm.png", mask.encodePng()) + block: + var font = readFont("tests/fonts/IBMPlexSans-Regular.svg") + font.size = 48 + let mask = newMask(200, 100) + mask.fillText(font, "IBM ") + writeFile("tests/fonts/svg_ibm.png", mask.encodePng()) -block: - var font = readFont("tests/fonts/Moon-Bold.svg") - font.size = 48 - let mask = newMask(200, 100) - mask.fillText(font, "Moon ") - writeFile("tests/fonts/svg_moon.png", mask.encodePng()) + block: + var font = readFont("tests/fonts/Moon-Bold.svg") + font.size = 48 + let mask = newMask(200, 100) + mask.fillText(font, "Moon ") + writeFile("tests/fonts/svg_moon.png", mask.encodePng()) -block: - var font = readFont("tests/fonts/Ubuntu.svg") - font.size = 48 - let mask = newMask(200, 100) - mask.fillText(font, "Ubuntu ") - writeFile("tests/fonts/svg_ubuntu.png", mask.encodePng()) + block: + var font = readFont("tests/fonts/Ubuntu.svg") + font.size = 48 + let mask = newMask(200, 100) + mask.fillText(font, "Ubuntu ") + writeFile("tests/fonts/svg_ubuntu.png", mask.encodePng()) block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -180,6 +186,21 @@ block: doDiff(image, "basic9") +block: + var font = readFont("tests/fonts/Roboto-Regular_1.ttf") + font.size = 24 + + let image = newImage(200, 100) + image.fill(rgba(255, 255, 255, 255)) + image.fillText( + font, + "a b c d e f g h i j k l m n o p", + bounds = vec2(200, 0), + hAlign = haRight + ) + + doDiff(image, "basic10") + const paragraph = "ShehadcometotheconclusionthatyoucouldtellalotaboutapersonbytheirearsThewaytheystuckoutandthesizeoftheearlobescouldgiveyou" paragraph_2 = "She had come to the conclusion that you could tell a lot about a person by their ears The way they stuck out and the size of the earlobes could give you wonderful insights into the person Of course she couldnt scientifically prove any of this but that didnt matter to her Before anything else she would size up the ears of the person she was talking to Shes asked the question so many times that she barely listened to the answers anymore The answers were always the same Well not exactly the same but the same in a general sense A more accurate description was the answers never surprised her" @@ -363,9 +384,9 @@ block: block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") - font.size = 200 + font.size = 100 - let image = newImage(2800, 400) + let image = newImage(1400, 200) image.fill(rgba(255, 255, 255, 255)) image.fillText( font, @@ -377,10 +398,10 @@ block: block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") - font.size = 200 + font.size = 100 font.noKerningAdjustments = true - let image = newImage(2800, 400) + let image = newImage(1400, 200) image.fill(rgba(255, 255, 255, 255)) image.fillText( font, @@ -392,9 +413,9 @@ block: block: var font = readFont("tests/fonts/Ubuntu-Regular_1.ttf") - font.size = 200 + font.size = 100 - let image = newImage(2800, 400) + let image = newImage(1400, 200) image.fill(rgba(255, 255, 255, 255)) image.fillText( font, @@ -406,10 +427,10 @@ block: block: var font = readFont("tests/fonts/Ubuntu-Regular_1.ttf") - font.size = 200 + font.size = 100 font.noKerningAdjustments = true - let image = newImage(2800, 400) + let image = newImage(1400, 200) image.fill(rgba(255, 255, 255, 255)) image.fillText( font, @@ -421,9 +442,9 @@ block: block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") - font.size = 200 + font.size = 100 - let image = newImage(2800, 400) + let image = newImage(1400, 200) image.fill(rgba(255, 255, 255, 255)) image.fillText( font, @@ -435,10 +456,10 @@ block: block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") - font.size = 200 + font.size = 100 font.noKerningAdjustments = true - let image = newImage(2800, 400) + let image = newImage(1400, 200) image.fill(rgba(255, 255, 255, 255)) image.fillText( font, @@ -450,9 +471,9 @@ block: block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") - font.size = 100 + font.size = 50 - let image = newImage(2800, 200) + let image = newImage(1400, 100) image.fill(rgba(255, 255, 255, 255)) image.fillText( font, @@ -464,9 +485,9 @@ block: block: var font = readFont("tests/fonts/Ubuntu-Regular_1.ttf") - font.size = 100 + font.size = 50 - let image = newImage(2800, 200) + let image = newImage(1400, 100) image.fill(rgba(255, 255, 255, 255)) image.fillText( font, @@ -478,9 +499,9 @@ block: block: var font = readFont("tests/fonts/IBMPlexSans-Regular_2.ttf") - font.size = 100 + font.size = 50 - let image = newImage(2800, 200) + let image = newImage(1400, 100) image.fill(rgba(255, 255, 255, 255)) image.fillText( font, @@ -621,14 +642,15 @@ block: ], gradientStops: @[ ColorStop(color: rgba(255, 0, 0, 255), position: 0), - ColorStop(color: rgba(255, 0, 0, 40), position: 1.0), + ColorStop(color: rgba(255, 0, 0, 127), position: 1.0), ] ) let image = newImage(100, 100) + image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "Text") - image.writeFile("tests/fonts/image_paint_fill.png") + doDiff(image, "image_paint_fill") block: var font1 = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -656,7 +678,7 @@ block: doDiff(image, "spans1") let ctx = newContext(image) - ctx.fillStyle = rgba(128, 128, 128, 128) + ctx.fillStyle = rgba(127, 127, 127, 127) for i, rect in arrangement.selectionRects: ctx.fillRect(rect) @@ -688,7 +710,7 @@ block: doDiff(image, "spans2") let ctx = newContext(image) - ctx.fillStyle = rgba(128, 128, 128, 128) + ctx.fillStyle = rgba(127, 127, 127, 127) for i, rect in arrangement.selectionRects: ctx.fillRect(rect) @@ -702,13 +724,13 @@ block: image.fill(rgba(255, 255, 255, 255)) let arrangement = typeset( - font, "Wrapping text to new line", bounds = image.wh + font, "Wrapping text to the next line", bounds = image.wh ) image.fillText(arrangement) let ctx = newContext(image) - ctx.fillStyle = rgba(128, 128, 128, 128) + ctx.fillStyle = rgba(127, 127, 127, 127) for i, rect in arrangement.selectionRects: ctx.fillRect(rect)