diff --git a/bindings/bindings.nim b/bindings/bindings.nim index 1563309b..68537e0b 100644 --- a/bindings/bindings.nim +++ b/bindings/bindings.nim @@ -306,6 +306,7 @@ exportProcs: scale(float32, float32) inverse(Matrix3) snapToPixels + mix(Color, Color, float32) writeFiles("bindings/generated", "Pixie") diff --git a/src/pixie/blends.nim b/src/pixie/blends.nim index 26804efa..519a82bc 100644 --- a/src/pixie/blends.nim +++ b/src/pixie/blends.nim @@ -1,6 +1,6 @@ ## Blending modes. -import chroma, common, std/math +import chroma, common # See https://www.w3.org/TR/compositing-1/ # See https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_blend_equation_advanced.txt diff --git a/src/pixie/fileformats/gif.nim b/src/pixie/fileformats/gif.nim index 88d0d2ec..13497587 100644 --- a/src/pixie/fileformats/gif.nim +++ b/src/pixie/fileformats/gif.nim @@ -105,6 +105,9 @@ proc decodeGif*(data: string): Gif {.raises: [PixieError].} = pos += 9 + if imageWidth > screenWidth or imageHeight > screenHeight: + raise newException(PixieError, "Invalid GIF frame dimensions") + if pos + localColorTableSize * 3 > data.len: failInvalid() diff --git a/src/pixie/paths.nim b/src/pixie/paths.nim index bf7908c6..2e160053 100644 --- a/src/pixie/paths.nim +++ b/src/pixie/paths.nim @@ -270,7 +270,6 @@ proc transform*(path: Path, mat: Mat3) {.raises: [].} = path.commands[0] = Move.float32 var i: int - # for command in path.commands.mitems: while i < path.commands.len: let kind = path.commands[i].PathCommandKind inc i