diff --git a/src/pixie/blends.nim b/src/pixie/blends.nim index 080bb1f..d2f927e 100644 --- a/src/pixie/blends.nim +++ b/src/pixie/blends.nim @@ -477,10 +477,13 @@ proc maskNormal(backdrop, source: uint8): uint8 = ## Blending masks blendAlpha(backdrop, source) -proc maskMask*(backdrop, source: uint8): uint8 = +proc maskMaskInline*(backdrop, source: uint8): uint8 {.inline.} = ## Masking masks ((backdrop.uint32 * source) div 255).uint8 +proc maskMask(backdrop, source: uint8): uint8 = + maskMaskInline(backdrop, source) + proc maskSubtract(backdrop, source: uint8): uint8 = ((backdrop.uint32 * (255 - source)) div 255).uint8 diff --git a/src/pixie/images.nim b/src/pixie/images.nim index bcd952d..f791c64 100644 --- a/src/pixie/images.nim +++ b/src/pixie/images.nim @@ -978,7 +978,7 @@ proc drawUber( a.unsafe[x, y] = 0 elif source != 255: let backdrop = a.unsafe[x, y] - a.unsafe[x, y] = maskMask(backdrop, source) + a.unsafe[x, y] = maskMaskInline(backdrop, source) srcPos += dx else: for x in x ..< xMax: