mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-28 03:47:00 -06:00
* psd: .abr brush (v1/v2/v6+) and .grd gradient (v5) parsers and writers Clean-room from public format descriptions: legacy computed/sampled brushes, 8BIM-sectioned samp/patt/desc files, 8/16-bit raw and PackBits tips. Bounded (MAX_EDGE, MAX_TOTAL_BYTES), damaged brushes are skipped with warnings, hostile input returns Err. Adds an abr fuzz target. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * paint: 36 grouped built-in brush presets and new procedural tips General / Dry Media / Wet Media / Special Effects groups (pressure size/opacity variants, airbrush, pencils, charcoal, pastel, crayon, rake, watercolour, ink, oil, foliage, grass, stipple, sparkle, halftone…). Leaf, grass, charcoal, sponge, star and rake tips are generated in code. BrushPreset gains a group. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * io: map .abr brushes onto BrushSettings Tip shape, shape dynamics, scattering, texture (embedded patt patterns), dual brush, colour dynamics, transfer, pose, noise, wet edges, build-up and captured tool options; unmapped settings are reported as warnings. Includes bench_abr (100-brush import, 5000-dab stroke). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * engine: brush.presets.importAbr and gradient.presets.importGrd Path or base64 data, group per file (re-import replaces), unique names next to the built-ins; graceful-failure tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ui: real stylus pressure/tilt, grouped Brushes panel, Import Brushes Pen force from egui Touch events (Windows WM_POINTER via winit), Pointer Events pressure/tilt/twist on the web, tilt via ui.pointer; mouse stays 1.0. .abr/.grd open from File > Open, drag-and-drop, Brushes panel and Preset Manager. Preset previews keyed on a cheap signature instead of the full brush JSON. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
39 lines
1.2 KiB
TOML
39 lines
1.2 KiB
TOML
[package]
|
|
name = "photocraft-engine"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
photocraft-geom = { workspace = true }
|
|
photocraft-color = { workspace = true }
|
|
photocraft-cms = { workspace = true }
|
|
photocraft-raster = { workspace = true }
|
|
photocraft-doc = { workspace = true }
|
|
photocraft-ops = { workspace = true }
|
|
photocraft-compose = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
rayon = { workspace = true }
|
|
photocraft-paint = { workspace = true }
|
|
photocraft-algo = { workspace = true }
|
|
photocraft-text = { workspace = true }
|
|
photocraft-vector = { workspace = true }
|
|
photocraft-io = { workspace = true }
|
|
photocraft-psd = { workspace = true }
|
|
photocraft-format = { workspace = true }
|
|
photocraft-plugins = { workspace = true }
|
|
blake3 = { version = "1.8", default-features = false, features = ["pure"] }
|
|
photocraft-codecs = { workspace = true }
|
|
flate2 = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
# Synthetic camera raw files for the open tests.
|
|
photocraft-raw = { workspace = true, features = ["testgen"] }
|
|
# WebAssembly text -> binary for plug-in test modules (Apache-2.0 WITH LLVM-exception).
|
|
wat = "1.228"
|