From bad415401a0bc6e67466138245ccb4dac6677be4 Mon Sep 17 00:00:00 2001 From: Ryan Oldenburg Date: Wed, 9 Dec 2020 01:18:57 -0600 Subject: [PATCH] benchmarking blends --- src/pixie/blends.nim | 3 +++ tests/benchmark_blends.nim | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 tests/benchmark_blends.nim diff --git a/src/pixie/blends.nim b/src/pixie/blends.nim index be23947..f005234 100644 --- a/src/pixie/blends.nim +++ b/src/pixie/blends.nim @@ -326,18 +326,21 @@ proc blendNormal(a, b: ColorRGBA): ColorRGBA = result.g = b.g result.b = b.b result = alphaFix(a, b, result) + # blendNormalFloats(a.color, b.color).rgba proc blendDarken(a, b: ColorRGBA): ColorRGBA = result.r = min(a.r, b.r) result.g = min(a.g, b.g) result.b = min(a.b, b.b) result = alphaFix(a, b, result) + # blendDarkenFloats(a.color, b.color).rgba proc blendMultiply(a, b: ColorRGBA): ColorRGBA = result.r = ((a.r.uint32 * b.r.uint32) div 255).uint8 result.g = ((a.g.uint32 * b.g.uint32) div 255).uint8 result.b = ((a.b.uint32 * b.b.uint32) div 255).uint8 result = alphaFix(a, b, result) + # blendMultiplyFloats(a.color, b.color).rgba proc blendLinearBurn(a, b: ColorRGBA): ColorRGBA = result.r = max(0, a.r.int32 + b.r.int32 - 255).uint8 diff --git a/tests/benchmark_blends.nim b/tests/benchmark_blends.nim new file mode 100644 index 0000000..520dad6 --- /dev/null +++ b/tests/benchmark_blends.nim @@ -0,0 +1,16 @@ +import benchy, chroma, pixie, vmath + +let + a = newImage(1000, 1000) + b = newImage(1000, 1000) + +b.fill(rgba(127, 127, 127, 255)) + +timeIt "bmNormal": + a.draw(b, vec2(0, 0), bmNormal) + +timeIt "bmDarken": + a.draw(b, vec2(0, 0), bmDarken) + +timeIt "bmMultiply": + a.draw(b, vec2(0, 0), bmMultiply)