pixie/tests/benchmark_images.nim

90 lines
1.4 KiB
Nim
Raw Normal View History

2021-01-23 20:17:28 +00:00
import chroma, pixie, benchy
2020-12-03 20:21:58 +00:00
2021-02-08 20:31:20 +00:00
let image = newImage(2560, 1440)
proc reset() =
image.fill(rgba(63, 127, 191, 191))
reset()
2020-12-03 20:21:58 +00:00
timeIt "fill":
2021-02-08 20:31:20 +00:00
image.fill(rgba(255, 255, 255, 255))
doAssert image[0, 0] == rgba(255, 255, 255, 255)
reset()
2020-12-03 20:21:58 +00:00
2020-12-09 00:10:20 +00:00
timeIt "fill_rgba":
2021-02-08 20:31:20 +00:00
image.fill(rgba(63, 127, 191, 191))
doAssert image[0, 0] == rgba(63, 127, 191, 191)
reset()
2020-12-09 00:10:20 +00:00
2021-01-23 20:17:28 +00:00
timeIt "subImage":
2021-02-08 20:31:20 +00:00
keep image.subImage(0, 0, 256, 256)
reset()
2021-01-23 20:17:28 +00:00
2021-02-08 02:41:12 +00:00
# timeIt "superImage":
# discard
2021-02-08 20:31:20 +00:00
reset()
2021-02-08 02:41:12 +00:00
timeIt "minifyBy2":
2021-02-08 20:31:20 +00:00
let minified = image.minifyBy2()
2021-02-08 02:41:12 +00:00
doAssert minified[0, 0] == rgba(63, 127, 191, 191)
2021-02-08 20:31:20 +00:00
reset()
2020-12-03 20:21:58 +00:00
timeIt "invert":
2021-02-08 20:31:20 +00:00
image.invert()
reset()
2020-12-03 20:32:50 +00:00
timeIt "applyOpacity":
2021-02-08 20:31:20 +00:00
image.applyOpacity(0.5)
reset()
2020-12-03 20:32:50 +00:00
timeIt "sharpOpacity":
2021-02-08 20:31:20 +00:00
image.sharpOpacity()
2021-01-24 22:03:35 +00:00
2021-02-08 20:31:20 +00:00
reset()
2021-01-24 22:03:35 +00:00
2021-01-25 17:49:29 +00:00
timeIt "toPremultipliedAlpha":
2021-02-08 20:31:20 +00:00
image.toPremultipliedAlpha()
reset()
2021-01-24 22:03:35 +00:00
2021-01-25 17:49:29 +00:00
timeIt "toStraightAlpha":
2021-02-08 20:31:20 +00:00
image.toStraightAlpha()
reset()
block:
var path: Path
path.ellipse(image.width / 2, image.height / 2, 300, 300)
let mask = newMask(image.width, image.height)
mask.fillPath(path)
timeIt "mask":
image.draw(mask)
2021-02-08 20:31:20 +00:00
reset()
timeIt "lerp integers":
for i in 0 ..< 100000:
2021-02-08 20:31:20 +00:00
let c = image[0, 0]
var z: int
for t in 0 .. 100:
z += lerp(c, c, t.float32 / 100).a.int
doAssert z > 0
timeIt "lerp floats":
for i in 0 ..< 100000:
2021-02-08 20:31:20 +00:00
let c = image[0, 0]
var z: int
for t in 0 .. 100:
z += lerp(c.color, c.color, t.float32 / 100).rgba().a.int
doAssert z > 0