morepretty

This commit is contained in:
Ryan Oldenburg 2021-06-26 23:16:35 -05:00
parent 60f5801b71
commit c765026b67
3 changed files with 18 additions and 13 deletions

View file

@ -81,7 +81,9 @@ proc minifyBy2*(mask: Mask, power = 1): Mask =
when defined(amd64) and not defined(pixieNoSimd):
let
oddMask = mm_set1_epi16(cast[int16](0xff00))
first8 = cast[M128i]([uint8.high, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
firstByte = cast[M128i](
[uint8.high, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
)
for _ in countup(0, result.width - 16, 8):
let
top = mm_loadu_si128(src.data[src.dataIndex(x * 2, y * 2 + 0)].addr)
@ -114,14 +116,14 @@ proc minifyBy2*(mask: Mask, power = 1): Mask =
# merged has the correct values in the even indices
a = mm_and_si128(merged, first8)
b = mm_and_si128(mm_srli_si128(merged, 2), first8)
c = mm_and_si128(mm_srli_si128(merged, 4), first8)
d = mm_and_si128(mm_srli_si128(merged, 6), first8)
e = mm_and_si128(mm_srli_si128(merged, 8), first8)
f = mm_and_si128(mm_srli_si128(merged, 10), first8)
g = mm_and_si128(mm_srli_si128(merged, 12), first8)
h = mm_and_si128(mm_srli_si128(merged, 14), first8)
a = mm_and_si128(merged, firstByte)
b = mm_and_si128(mm_srli_si128(merged, 2), firstByte)
c = mm_and_si128(mm_srli_si128(merged, 4), firstByte)
d = mm_and_si128(mm_srli_si128(merged, 6), firstByte)
e = mm_and_si128(mm_srli_si128(merged, 8), firstByte)
f = mm_and_si128(mm_srli_si128(merged, 10), firstByte)
g = mm_and_si128(mm_srli_si128(merged, 12), firstByte)
h = mm_and_si128(mm_srli_si128(merged, 14), firstByte)
ab = mm_or_si128(a, mm_slli_si128(b, 1))
cd = mm_or_si128(c, mm_slli_si128(d, 1))

View file

@ -1206,12 +1206,14 @@ proc computeCoverages(
at - prevAt
if leftCover != 0:
inc fillStart
coverages[prevAt.int - startX] += (leftCover * sampleCoverage.float32).uint8
coverages[prevAt.int - startX] +=
(leftCover * sampleCoverage.float32).uint8
if pixelCrossed:
let rightCover = at - trunc(at)
if rightCover > 0:
coverages[at.int - startX] += (rightCover * sampleCoverage.float32).uint8
coverages[at.int - startX] +=
(rightCover * sampleCoverage.float32).uint8
let fillLen = at.int - fillStart
if fillLen > 0:

View file

@ -46,7 +46,8 @@ timeIt "cairo decode":
timeIt "cairo encode":
let decoded = imageSurfaceCreateFromPng(filePath)
var write: WriteFunc = proc(closure: pointer, data: cstring, len: int32): Status {.cdecl.} =
StatusSuccess
var write: WriteFunc =
proc(closure: pointer, data: cstring, len: int32): Status {.cdecl.} =
StatusSuccess
discard decoded.writeToPng(write, nil)