mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-11-01 05:58:12 -06:00
vello_cpu 0.0.8's clip_color, shared by the nonseparable blend modes, divided 0 by 0 when a gray's equal components were rounded just below 0 or above 1 after set_lum. The NaN drew the pixel black at the source's alpha whatever the backdrop: nine gray levels under /BM /Color in an empty isolated group (0.96 g among them) rendered (0, 0, 0), and two more at half opacity came out wrong. Vendor vello_cpu 0.0.8 (Apache-2.0 OR MIT) with a backport of linebender/vello#2000, which clips only when the denominator is positive. No vello_cpu release carries the fix yet; drop the copy when one does. Tests in it::nonseparable_gray run every gray level. The two Color ramps fail with the unpatched blend.rs. The Luminosity ramp (black over each opaque gray, upstream's other case) passes either way here: pages use the u8 pipeline, and that case only failed in the f32 one; it stays as a guard. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SqmHYx8FiWM5PcsoiErgp9
457 lines
11 KiB
TOML
457 lines
11 KiB
TOML
# This file is automatically @generated by Cargo.
|
|
# It is not intended for manual editing.
|
|
version = 4
|
|
|
|
[[package]]
|
|
name = "adler2"
|
|
version = "2.0.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
|
|
|
|
[[package]]
|
|
name = "arrayvec"
|
|
version = "0.7.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
|
|
|
|
[[package]]
|
|
name = "autocfg"
|
|
version = "1.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
|
|
|
|
[[package]]
|
|
name = "bitflags"
|
|
version = "2.11.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
|
|
|
|
[[package]]
|
|
name = "bytemuck"
|
|
version = "1.25.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
|
|
dependencies = [
|
|
"bytemuck_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "bytemuck_derive"
|
|
version = "1.10.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cfg-if"
|
|
version = "1.0.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
|
|
[[package]]
|
|
name = "color"
|
|
version = "0.3.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2ec7c5eb7a16992b1904d76c517d170ab353b0e0b3d5a0c81a8a0cd1037893cf"
|
|
dependencies = [
|
|
"bytemuck",
|
|
"libm",
|
|
]
|
|
|
|
[[package]]
|
|
name = "core_maths"
|
|
version = "0.1.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30"
|
|
dependencies = [
|
|
"libm",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crc32fast"
|
|
version = "1.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
|
|
dependencies = [
|
|
"cfg-if",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crossbeam-channel"
|
|
version = "0.5.15"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
|
|
dependencies = [
|
|
"crossbeam-utils",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crossbeam-deque"
|
|
version = "0.8.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
|
|
dependencies = [
|
|
"crossbeam-epoch",
|
|
"crossbeam-utils",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crossbeam-epoch"
|
|
version = "0.9.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
|
|
dependencies = [
|
|
"crossbeam-utils",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crossbeam-utils"
|
|
version = "0.8.21"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
|
|
|
|
[[package]]
|
|
name = "either"
|
|
version = "1.15.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
|
|
|
|
[[package]]
|
|
name = "euclid"
|
|
version = "0.22.14"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06"
|
|
dependencies = [
|
|
"num-traits",
|
|
]
|
|
|
|
[[package]]
|
|
name = "fdeflate"
|
|
version = "0.3.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
|
|
dependencies = [
|
|
"simd-adler32",
|
|
]
|
|
|
|
[[package]]
|
|
name = "fearless_simd"
|
|
version = "0.4.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "76258897e51fd156ee03b6246ea53f3e0eb395d0b327e9961c4fc4c8b2fa151a"
|
|
dependencies = [
|
|
"libm",
|
|
]
|
|
|
|
[[package]]
|
|
name = "flate2"
|
|
version = "1.1.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
|
|
dependencies = [
|
|
"crc32fast",
|
|
"miniz_oxide",
|
|
]
|
|
|
|
[[package]]
|
|
name = "foldhash"
|
|
version = "0.2.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
|
|
|
|
[[package]]
|
|
name = "font-types"
|
|
version = "0.11.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5b38ad915f6dadd993ced50848a8291a543bd41ca62bc10740d5e64e2ab4cfd7"
|
|
dependencies = [
|
|
"bytemuck",
|
|
]
|
|
|
|
[[package]]
|
|
name = "glifo"
|
|
version = "0.1.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ae9d48c6d81526ad2f9d5d6e5fddf5f6949ffbc46fcac0db0d061a6e65097019"
|
|
dependencies = [
|
|
"bytemuck",
|
|
"core_maths",
|
|
"foldhash",
|
|
"hashbrown",
|
|
"log",
|
|
"peniko",
|
|
"png",
|
|
"skrifa",
|
|
"smallvec",
|
|
"vello_common",
|
|
]
|
|
|
|
[[package]]
|
|
name = "guillotiere"
|
|
version = "0.7.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "6b17e70c989c36bad147b27a58d148c0741c51448aa5653436547323e524d0ab"
|
|
dependencies = [
|
|
"euclid",
|
|
]
|
|
|
|
[[package]]
|
|
name = "hashbrown"
|
|
version = "0.17.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
|
|
dependencies = [
|
|
"foldhash",
|
|
]
|
|
|
|
[[package]]
|
|
name = "kurbo"
|
|
version = "0.13.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4b60dfc32f652b926df6192e55525b16d186c69d47876c3ead4da5cc9f8450e2"
|
|
dependencies = [
|
|
"arrayvec",
|
|
"euclid",
|
|
"libm",
|
|
"polycool",
|
|
"smallvec",
|
|
]
|
|
|
|
[[package]]
|
|
name = "libm"
|
|
version = "0.2.16"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
|
|
|
|
[[package]]
|
|
name = "linebender_resource_handle"
|
|
version = "0.1.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4"
|
|
|
|
[[package]]
|
|
name = "log"
|
|
version = "0.4.29"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
|
|
|
|
[[package]]
|
|
name = "miniz_oxide"
|
|
version = "0.8.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
|
|
dependencies = [
|
|
"adler2",
|
|
"simd-adler32",
|
|
]
|
|
|
|
[[package]]
|
|
name = "num-traits"
|
|
version = "0.2.19"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
|
dependencies = [
|
|
"autocfg",
|
|
"libm",
|
|
]
|
|
|
|
[[package]]
|
|
name = "ordered-channel"
|
|
version = "1.2.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "95be4d57809897b5a7539fc15a7dfe0e84141bc3dfaa2e9b1b27caa90acf61ab"
|
|
dependencies = [
|
|
"crossbeam-channel",
|
|
]
|
|
|
|
[[package]]
|
|
name = "peniko"
|
|
version = "0.6.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "839c8299360d2e998bdb106dc0a6cd71dcc5f4df51df1b620361bf50e283cca6"
|
|
dependencies = [
|
|
"bytemuck",
|
|
"color",
|
|
"kurbo",
|
|
"linebender_resource_handle",
|
|
"smallvec",
|
|
]
|
|
|
|
[[package]]
|
|
name = "png"
|
|
version = "0.18.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61"
|
|
dependencies = [
|
|
"bitflags",
|
|
"crc32fast",
|
|
"fdeflate",
|
|
"flate2",
|
|
"miniz_oxide",
|
|
]
|
|
|
|
[[package]]
|
|
name = "polycool"
|
|
version = "0.4.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "50596ddc09eb5ad5f75cacd40209568e66df71baf86e1499a0e99c4cff12a5a6"
|
|
dependencies = [
|
|
"arrayvec",
|
|
"libm",
|
|
]
|
|
|
|
[[package]]
|
|
name = "proc-macro2"
|
|
version = "1.0.106"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
dependencies = [
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "quote"
|
|
version = "1.0.45"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rayon"
|
|
version = "1.12.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d"
|
|
dependencies = [
|
|
"either",
|
|
"rayon-core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rayon-core"
|
|
version = "1.13.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
|
|
dependencies = [
|
|
"crossbeam-deque",
|
|
"crossbeam-utils",
|
|
]
|
|
|
|
[[package]]
|
|
name = "read-fonts"
|
|
version = "0.39.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c4ed38b89c2c77ff968c524145ad65fb010f38af5c7a224b53b81d47ac2daa81"
|
|
dependencies = [
|
|
"bytemuck",
|
|
"core_maths",
|
|
"font-types",
|
|
]
|
|
|
|
[[package]]
|
|
name = "simd-adler32"
|
|
version = "0.3.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
|
|
|
|
[[package]]
|
|
name = "skrifa"
|
|
version = "0.42.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0c34617370ae968efb7161bb2beb517d9084659aae19e24b89e3db25b46e4564"
|
|
dependencies = [
|
|
"bytemuck",
|
|
"core_maths",
|
|
"read-fonts",
|
|
]
|
|
|
|
[[package]]
|
|
name = "smallvec"
|
|
version = "1.15.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
|
|
|
|
[[package]]
|
|
name = "syn"
|
|
version = "2.0.117"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thiserror"
|
|
version = "2.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
|
|
dependencies = [
|
|
"thiserror-impl",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thiserror-impl"
|
|
version = "2.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thread_local"
|
|
version = "1.1.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
|
|
dependencies = [
|
|
"cfg-if",
|
|
]
|
|
|
|
[[package]]
|
|
name = "unicode-ident"
|
|
version = "1.0.24"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
|
|
[[package]]
|
|
name = "vello_common"
|
|
version = "0.0.8"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3361bff7f7d82c0c496b92048db83846691f0e844cc28dee92b1c824291b55ee"
|
|
dependencies = [
|
|
"bytemuck",
|
|
"fearless_simd",
|
|
"guillotiere",
|
|
"hashbrown",
|
|
"libm",
|
|
"log",
|
|
"peniko",
|
|
"png",
|
|
"smallvec",
|
|
"thiserror",
|
|
]
|
|
|
|
[[package]]
|
|
name = "vello_cpu"
|
|
version = "0.0.8"
|
|
dependencies = [
|
|
"bytemuck",
|
|
"crossbeam-channel",
|
|
"glifo",
|
|
"hashbrown",
|
|
"ordered-channel",
|
|
"png",
|
|
"rayon",
|
|
"thread_local",
|
|
"vello_common",
|
|
]
|