From 9e132b64575fccdfbd6d68f622905ee8dbec0180 Mon Sep 17 00:00:00 2001 From: Ryan Oldenburg Date: Fri, 25 Jun 2021 16:54:32 -0500 Subject: [PATCH] small stuff --- experiments/benchmark_cairo.nim | 8 ++++---- src/pixie/images.nim | 3 +-- tests/benchmark_png.nim | 17 +++++++++++++++-- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/experiments/benchmark_cairo.nim b/experiments/benchmark_cairo.nim index 02c0677..8c4e71e 100644 --- a/experiments/benchmark_cairo.nim +++ b/experiments/benchmark_cairo.nim @@ -1,7 +1,7 @@ import benchy, cairo, chroma, math, pixie block: - var + let surface = imageSurfaceCreate(FORMAT_ARGB32, 1920, 1080) ctx = surface.create() @@ -19,7 +19,7 @@ block: # discard surface.writeToPng("cairo1.png") - var a = newImage(1920, 1080) + let a = newImage(1920, 1080) a.fill(rgba(255, 255, 255, 255)) timeIt "pixie1": @@ -34,7 +34,7 @@ block: # a.writeFile("pixie1.png") block: - var + let surface = imageSurfaceCreate(FORMAT_ARGB32, 1920, 1080) ctx = surface.create() @@ -52,7 +52,7 @@ block: # discard surface.writeToPng("cairo2.png") - var a = newImage(1920, 1080) + let a = newImage(1920, 1080) a.fill(rgba(255, 255, 255, 255)) timeIt "pixie2": diff --git a/src/pixie/images.nim b/src/pixie/images.nim index bf174b7..7097630 100644 --- a/src/pixie/images.nim +++ b/src/pixie/images.nim @@ -709,7 +709,7 @@ proc drawUber(a, b: Image | Mask, mat = mat3(), blendMode = bmNormal) = else: var x = xMin when defined(amd64) and not defined(pixieNoSimd): - if dx.x == 1 and dx.y == 0 and dy.x == 0 and dy.y == 1: + if dx == vec2(1, 0) and dy == vec2(0, 1): # Check we are not rotated before using SIMD blends when type(a) is Image: if blendMode.hasSimdBlender(): @@ -732,7 +732,6 @@ proc drawUber(a, b: Image | Mask, mat = mat3(), blendMode = bmNormal) = blenderSimd(backdrop, source) ) x += 4 - else: # is a Mask if blendMode.hasSimdMasker(): let maskerSimd = blendMode.maskerSimd() diff --git a/tests/benchmark_png.nim b/tests/benchmark_png.nim index eb0b120..ec13a7e 100644 --- a/tests/benchmark_png.nim +++ b/tests/benchmark_png.nim @@ -1,7 +1,9 @@ -import benchy, nimPNG, pixie/fileformats/png, stb_image/read as stbi, +import benchy, cairo, nimPNG, pixie/fileformats/png, stb_image/read as stbi, stb_image/write as stbr -let data = readFile("tests/images/png/lenna.png") +let + filePath = "tests/images/png/lenna.png" + data = readFile(filePath) timeIt "pixie decode": keep decodePng(cast[seq[uint8]](data)) @@ -37,3 +39,14 @@ timeIt "stb_image encode": stbi.RGBA ) keep writePNG(width, height, channels, decoded).len + +timeIt "cairo decode": + keep imageSurfaceCreateFromPng(filePath) + +timeIt "cairo encode": + let decoded = imageSurfaceCreateFromPng(filePath) + + var write: WriteFunc = proc(closure: pointer, data: cstring, len: int32): Status {.cdecl.} = + StatusSuccess + + discard decoded.writeToPng(write, nil)