mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-25 02:29:31 -06:00
* M2: clip intersection starts its row walk at the first shared row clip::intersect in vello_common, the step every clipped path passes through, began its walk over strip rows at the earlier of the two paths' first rows. Each path therefore visited every row above it, although rows where one path has no strips produce no output. Every page is clipped (the crop box is a clip), so this ran for every stroke of every render: on the A1 engineering sample it was the hottest function in a full-page render. Start at the later first row, as vello_common 0.1 does. The strips and the pixels are unchanged; a test counts the rows the walk visits and fails without the change. vello_common 0.0.8 is vendored with that one-line PdfCraft patch (marked in the source), its unit test, the vendor/README.md row and an ATTRIBUTION.toml entry for its reference image. Cargo.lock records it as a path crate. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com> * Refresh catalog hashes after merging main --------- Co-authored-by: Claude Haiku 5.5 <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>
116 lines
4.5 KiB
TOML
116 lines
4.5 KiB
TOML
[workspace]
|
|
resolver = "3"
|
|
members = ["crates/*", "apps/*", "xtask"]
|
|
exclude = ["vendor"]
|
|
default-members = ["crates/*", "apps/pdfcraft", "apps/pdfcraft-cli", "xtask"]
|
|
|
|
[workspace.package]
|
|
version = "0.8.0"
|
|
edition = "2024"
|
|
license = "MIT OR Apache-2.0"
|
|
rust-version = "1.95"
|
|
repository = "https://github.com/storytold/pdfcraft"
|
|
|
|
[workspace.dependencies]
|
|
# Shared frontend components; engines remain independent of egui.
|
|
craft-ui = { git = "https://github.com/storytold/craft-libs", version = "0.1.0", rev = "5c874d51eeb3de70e735c8ce87a59a7dedd47675", features = ["serde"] }
|
|
# Shared system spooler; document composition remains in pdfcraft-print.
|
|
craft-print = { git = "https://github.com/storytold/craft-libs", version = "0.1.0", rev = "f03ec27ab2c405969428512178f746183cd55ca0" }
|
|
# internal
|
|
pdfcraft-geom = { path = "crates/geom", version = "0.8.0" }
|
|
pdfcraft-filters = { path = "crates/filters", version = "0.8.0" }
|
|
pdfcraft-cos = { path = "crates/cos", version = "0.8.0" }
|
|
pdfcraft-crypt = { path = "crates/crypt", version = "0.8.0" }
|
|
pdfcraft-organize = { path = "crates/organize", version = "0.8.0" }
|
|
pdfcraft-measure = { path = "crates/measure", version = "0.8.0" }
|
|
pdfcraft-annot = { path = "crates/annot", version = "0.8.0" }
|
|
pdfcraft-audit = { path = "crates/audit", version = "0.8.0" }
|
|
pdfcraft-fonts = { path = "crates/fonts", version = "0.8.0" }
|
|
pdfcraft-model = { path = "crates/model", version = "0.8.0" }
|
|
pdfcraft-content = { path = "crates/content", version = "0.8.0" }
|
|
pdfcraft-redact = { path = "crates/redact", version = "0.8.0" }
|
|
pdfcraft-print = { path = "crates/print", version = "0.8.0" }
|
|
pdfcraft-xfdf = { path = "crates/xfdf", version = "0.8.0" }
|
|
pdfcraft-sign = { path = "crates/sign", version = "0.8.0" }
|
|
pdfcraft-optimize = { path = "crates/optimize", version = "0.8.0" }
|
|
pdfcraft-a11y = { path = "crates/a11y", version = "0.8.0" }
|
|
pdfcraft-oracle = { path = "crates/oracle", version = "0.8.0" }
|
|
pdfcraft-testkit = { path = "crates/testkit", version = "0.8.0" }
|
|
pdfcraft-ocr = { path = "crates/ocr", version = "0.8.0" }
|
|
pdfcraft-js = { path = "crates/js", version = "0.8.0" }
|
|
pdfcraft-compare = { path = "crates/compare", version = "0.8.0" }
|
|
pdfcraft-preflight = { path = "crates/preflight", version = "0.8.0" }
|
|
pdfcraft-export = { path = "crates/export", version = "0.8.0" }
|
|
pdfcraft-edit = { path = "crates/edit", version = "0.8.0" }
|
|
pdfcraft-create = { path = "crates/create", version = "0.8.0" }
|
|
pdfcraft-forms = { path = "crates/forms", version = "0.8.0" }
|
|
pdfcraft-xfa = { path = "crates/xfa", version = "0.8.0" }
|
|
pdfcraft-render = { path = "crates/render", version = "0.8.0" }
|
|
pdfcraft-engine = { path = "crates/engine", version = "0.8.0" }
|
|
pdfcraft-platform = { path = "crates/platform", version = "0.8.0" }
|
|
pdfcraft-ui-egui = { path = "crates/ui-egui", version = "0.8.0" }
|
|
pdfcraft-automation = { path = "crates/automation", version = "0.8.0", default-features = false }
|
|
|
|
# pdf
|
|
hayro = "0.7.1"
|
|
hayro-syntax = "0.7.2"
|
|
lopdf = "0.45"
|
|
flate2 = { version = "1.1", default-features = false, features = ["rust_backend"] }
|
|
weezl = "0.2"
|
|
|
|
# foundation
|
|
thiserror = "2"
|
|
serde = { version = "1", features = ["derive", "rc"] }
|
|
serde_json = "1"
|
|
log = "0.4"
|
|
kurbo = "0.13"
|
|
|
|
# testing
|
|
proptest = "1"
|
|
|
|
# ui
|
|
egui = "0.36"
|
|
egui_extras = { version = "0.36", default-features = false, features = ["svg"] }
|
|
eframe = { version = "0.36", default-features = false }
|
|
egui_kittest = "0.36"
|
|
rfd = "0.17"
|
|
|
|
[workspace.lints.rust]
|
|
unsafe_code = "forbid"
|
|
|
|
[workspace.lints.clippy]
|
|
dbg_macro = "warn"
|
|
todo = "warn"
|
|
|
|
# `"*"` matches every non-workspace package: crates.io dependencies and the
|
|
# vendored crates under `vendor/` (excluded from the workspace). Our own crates
|
|
# keep full debug info. Dependencies keep only line tables, so backtraces still
|
|
# show file and line, but debug info for the whole dependency graph stays out of
|
|
# every test binary (each UI test binary had a 500-600 MB PDB on Windows, #454).
|
|
[profile.dev.package."*"]
|
|
opt-level = 2
|
|
debug = "line-tables-only"
|
|
|
|
[profile.dev]
|
|
opt-level = 1
|
|
|
|
[profile.low-disk]
|
|
inherits = "dev"
|
|
debug = "line-tables-only"
|
|
incremental = false
|
|
|
|
[profile.release]
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
|
|
# Vendored, patched third-party crates (see vendor/README.md). Each patch is meant to go upstream.
|
|
[patch.crates-io]
|
|
hayro-interpret = { path = "vendor/hayro-interpret" }
|
|
hayro = { path = "vendor/hayro" }
|
|
hayro-syntax = { path = "vendor/hayro-syntax" }
|
|
hayro-jbig2 = { path = "vendor/hayro-jbig2" }
|
|
lopdf = { path = "vendor/lopdf" }
|
|
winit = { path = "vendor/winit" }
|
|
egui-wgpu = { path = "vendor/egui-wgpu" }
|
|
vello_common = { path = "vendor/vello_common" }
|