aiongg
5ecfa852f4
Merge PR #5771 : Lab: adjustment results are whole samples, as the reference app stores them (lab8 curves passes)
...
crates/io/tests/corpus.rs: kept main's pass_floor 188 (TAKE-FIX: drop the PR's 186 hunk)
docs/file-format-parity.md: kept main's header and PSD/PSB rows; added the PR's change-log row without its floor figure
docs/gaps.md: kept main's header and evidence line; added the PR's change-log row without its floor figure
docs/scorecard.md: ours
2026-10-22 15:37:35 +00:00
aiongg
f32f882f3a
Merge main into integration-10
...
# Conflicts:
# apps/photocraft-web/src/web.rs
# apps/photocraft/src/services.rs
# crates/engine/src/file_cmds/tests.rs
# crates/engine/src/float_cmds.rs
# crates/engine/src/float_cmds/tests.rs
# xtask/src/corpus.rs
# xtask/src/corpus_pins.rs
# xtask/src/main.rs
2026-10-21 21:56:26 +00:00
aiongg
c71322043c
Merge PR #7941 : Light themes outline the slider knob (UI-217-11, #7927 )
2026-10-21 21:56:21 +00:00
aiongg
e4a413241a
Merge PR #8004 : Windows on ARM: auto picks DirectX 12 for Qualcomm graphics ( #7537 )
2026-10-21 21:56:21 +00:00
aiongg
c865e3b93b
Merge PR #5928 : BMP export: Indexed Color documents save as palette BMPs
2026-10-21 21:56:20 +00:00
aiongg
f3c20b9242
Merge PR #7626 : Flatpak: a second launch hands its files to the running PhotoCraft over a Unix socket ( #1540 )
2026-10-21 21:56:10 +00:00
aiongg
b0833a893c
Merge PR #7694 : perf(format): reuse .pcraft writers between document saves
2026-10-21 21:56:10 +00:00
aiongg
7ab402c025
Merge PR #6028 : Zoom tool menu: Zoom In and Zoom Out last, as in Photoshop ( #6005 )
...
# Conflicts:
# docs/context-menu-parity.md
2026-10-21 21:56:02 +00:00
skylar taylor-barrick and GitHub
6d8cbac7dc
Merge pull request #2945 from diegochagas/feat/xcf-read
...
Open GIMP XCF files: layers, groups, masks, blend modes, channels and selection
2026-10-21 14:35:32 -06:00
Diego Chagas
ca18689304
Open GIMP XCF files: layers, groups, masks, modes, channels and selection ( #1076 )
...
PhotoCraft reads GIMP's .xcf (and .xcf.gz) files, read only, through a new
reader in photocraft-io written from the public XCF specification: versions
0 to 26, uncompressed, RLE and zlib tiles, 8/16/32-bit integer and
16/32/64-bit float precisions (linear precisions get a linear profile),
pixel layers at any position, groups by item path with pass-through,
layer masks applied or disabled, opacity, visibility, locks, colour tags,
the 2.10 and legacy blend modes mapped to Photoshop's (modes without an
equivalent open as Normal with a note), the ICC profile, resolution,
guides, the comment, extra channels and the saved selection; indexed
images open as RGB. Text, vector and link layers open as their pixels;
layer effects, paths and floating selections are reported.
Fixtures are written by GIMP 3.2 itself (scripts/xcf_fixtures.py), each
with GIMP's merged rendering as a PNG. In gamma-encoded blend and
composite spaces our composite matches GIMP within 0.5/255; GIMP's
linear-light default, its Clip to backdrop and its clamp-after-alpha
for unbounded modes are documented and measured in docs/xcf.md.
2026-10-21 16:57:22 -03:00
aiongg
94d28535d3
Merge PR #6464 : Survive a lost window GPU device: draw nothing, save unsaved work for recovery, close ( #3438 , #1215 )
2026-10-21 18:15:02 +00:00
aiongg
0c18dbff9a
Merge PR #6472 : fix(ui): preserve shape stroke settings at zero width
2026-10-21 18:14:57 +00:00
Rene Leonhardt
aa715535f3
perf(format): reuse save cache ownership safely
...
Move cached keys and compressed buffers between saves, and compare weak
allocation pointers without temporary strong-reference updates. Keep
payload budgets and archive bytes unchanged.
Allow fallible tile edits after a cached save. Move pixel storage when
only weak references remain; use a fallible copy for shared storage and
restore the original tile if the copy fails.
Cover cache key reuse, edits after saves at every depth, and weak/shared
tile ownership. Name the fixed revisions behind the existing timings.
2026-10-21 17:49:09 +02:00
aiongg
a7825b9e0f
Integration: regenerate docs/scorecard.md for the batch
2026-10-21 15:47:34 +00:00
aiongg
066aae7233
Merge PR #6206 : Performance: a cancelled Gaussian Blur job stops within budget ( #6205 )
...
# Conflicts:
# docs/gaps.md
2026-10-21 15:45:46 +00:00
aiongg
86eb4e6739
Merge PR #3516 : scorecard: five rows catch up with work already on main
...
# Conflicts:
# docs/scorecard.md
# docs/ui-parity.md
2026-10-21 15:45:33 +00:00
aiongg
cbc091dd68
Integration: .act colour tables in the parity doc's presets table, for #5407
2026-10-21 15:45:17 +00:00
aiongg
77557d75f1
Merge PR #8229 : Integration batch: 8 PRs on main
...
# Conflicts:
# crates/engine/src/layer_style.rs
# crates/io/src/psd_export.rs
# crates/io/src/smart_map.rs
# docs/file-format-parity.md
2026-10-21 15:45:07 +00:00
Korg1ch
76e4e81e33
fix(ui-egui): outline the slider knob in the light themes ( #7927 )
2026-10-21 18:28:10 +03:00
Branch Sync
960d927a37
Merge remote-tracking branch 'refs/remotes/upstream/main' into HEAD
2026-10-21 11:18:25 -04:00
David Mann and Claude Opus 5.5
60cd4ad099
Address CodeRabbit review: scope the Gaussian Blur speedup claim
...
The uncancelled speedup is for layers with locked transparency only, the
numbers are local runs and the perf baseline is not re-measured yet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-21 12:26:07 +02:00
David Mann
d073b42290
Merge remote-tracking branch 'origin/main' into perf/p25-blur-cancel
2026-10-21 12:24:58 +02:00
David Mann and Claude Opus 5.5
a67b6ed5ca
Address CodeRabbit review: narrow two coverage claims, cite evidence as file:line
...
BUG-207-5: only eight retouch tools are tested to follow the Channels panel target (Healing,
Spot Healing, Sponge and Remove are skipped by changes_gray). BUG-208-4: the Polygonal Lasso test
keeps the selection for Shift or Alt and commits a Shift polygon; no test commits an Alt one.
The notes this branch changes now cite file:line, as docs/development.md asks; ui-parity.md gets
a dated row for the marquee Shift+Alt test instead of rewriting the 2026-10-11 one.
Regenerated docs/scorecard.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-21 12:24:49 +02:00
David Mann and Claude Opus 5.5
d3a5c28904
Merge main into docs/scorecard-stale-rows-2
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-21 12:23:19 +02:00
David Mann
b68b64ccb5
Merge PR #6160 : feat(psd): editable Render smart filters (Clouds, Difference Clouds, Fibers, Lens Flare)
...
# Conflicts:
# docs/file-format-parity.md
2026-10-21 11:37:14 +02:00
David Mann
86811ddeee
Merge PR #6002 : Stroke: keep Overprint (overprint)
...
# Conflicts:
# crates/engine/src/layer_style.rs
# crates/ui-egui/src/layer_style.rs
# docs/file-format-parity.md
2026-10-21 11:36:58 +02:00
David Mann
a492716367
Merge PR #5990 : Bevel & Emboss: keep the Gloss Contour's Anti-aliased (antialiasGloss)
2026-10-21 11:29:05 +02:00
David Mann
27b8d133d8
Merge PR #4771 : Fix mixed-order layered TIFF type geometry and unsafe text fallback
2026-10-21 11:28:23 +02:00
David Mann
4cfb576ee0
Merge PR #4496 : .atn: a pinned corpus of real action sets, with byte-exact and load/save/reload tests ( #219 )
2026-10-21 11:28:19 +02:00
aiongg
b1e408d28f
Merge the smart-filter track ( #7066 #6398 #6397 #6297 #6299 #6301 #6303 #6315 #6305 #6317 )
...
# Conflicts:
# docs/file-format-parity.md
2026-10-21 05:04:04 +00:00
aiongg
a2c56f960f
Integration: gaps.md preferences count from the regenerated scorecard, for #6208 and #6211
2026-10-21 05:04:04 +00:00
aiongg
8e04e6f21e
Integration: regenerate docs/scorecard.md for the batch
2026-10-21 05:04:04 +00:00
aiongg
2a1ac6a6fb
Merge PR #6208 : Preferences: Save in Background off saves in the foreground ( #6207 )
...
# Conflicts:
# docs/gaps.md
# docs/scorecard.md
2026-10-21 05:04:04 +00:00
aiongg
050caf9ecd
Merge PR #6681 : Content-Aware Move: live preview for large selections (TOOL-213-4, #6680 )
...
# Conflicts:
# docs/gaps.md
# docs/scorecard.md
# docs/target-app-parity.md
2026-10-21 05:04:04 +00:00
aiongg
4804148ff9
Merge PR #3759 : Pattern Stamp and Background Eraser draw live; Spot Healing shows its heal area (TOOL-213-7, #3754 )
...
# Conflicts:
# docs/gaps.md
# docs/target-app-parity.md
2026-10-21 05:04:04 +00:00
aiongg
f163e3ce0b
Merge PR #6211 : Zoom tool: hold to zoom continuously with Animated Zoom on ( #6210 )
...
# Conflicts:
# docs/gaps.md
# docs/scorecard.md
# docs/ui-parity.md
2026-10-21 05:04:03 +00:00
aiongg
fc371711e6
Merge PR #5847 : Shapes: Density and Feather on shape layers ( #5846 )
...
# Conflicts:
# docs/scorecard.md
# docs/target-app-parity.md
# docs/ui-parity.md
2026-10-21 05:04:03 +00:00
aiongg
c23a6c9b90
Merge PR #6206 : Performance: a cancelled Gaussian Blur job stops within budget ( #6205 )
...
# Conflicts:
# docs/gaps.md
2026-10-21 05:04:02 +00:00
aiongg
4699d3605c
Merge PR #7026 : Automation: place and layer/data-set export by index keep the active document ( #7025 )
2026-10-21 05:04:01 +00:00
aiongg
c633674b6d
Integration: one smart-filter count (41 plus Hue/Saturation, Perspective Warp, Filter Gallery and Camera Raw) in the parity doc and FILE-215-2, for #6317
2026-10-21 01:21:19 +00:00
aiongg
af3dff34a6
Merge PR #6317 : PSD: Mezzotint and Color Halftone smart filters open and save like Photoshop ( #6316 )
...
# Conflicts:
# crates/io/src/smart_map.rs
# docs/file-format-parity.md
# docs/scorecard.md
# scorecard/file_compat.toml
2026-10-21 01:18:35 +00:00
aiongg
2c87bd630b
Merge PR #6305 : PSD: Offset and Custom smart filters open and save like Photoshop ( #6304 )
...
# Conflicts:
# crates/io/src/smart_map.rs
# docs/file-format-parity.md
# docs/scorecard.md
# scorecard/file_compat.toml
2026-10-21 01:17:09 +00:00
aiongg
2c0d232083
Merge PR #6315 : PSD: Wind, Extrude and Tiles smart filters open and save like Photoshop ( #6314 )
...
# Conflicts:
# crates/io/src/smart_map.rs
# docs/file-format-parity.md
# docs/scorecard.md
# scorecard/file_compat.toml
2026-10-21 01:16:28 +00:00
aiongg
7c92cb988c
Merge PR #6303 : PSD: Diffuse, Trace Contour, Crystallize and Pointillize smart filters open and save like Photoshop ( #6302 )
...
# Conflicts:
# crates/io/src/smart_map.rs
# docs/file-format-parity.md
# docs/scorecard.md
# scorecard/file_compat.toml
2026-10-21 01:11:06 +00:00
aiongg
9fbb648f8a
Merge PR #6301 : PSD: Smart Sharpen and Dust & Scratches smart filters open and save like Photoshop ( #6300 )
...
# Conflicts:
# crates/io/src/smart_map.rs
# docs/file-format-parity.md
# docs/scorecard.md
# scorecard/file_compat.toml
2026-10-21 01:09:51 +00:00
aiongg
95256cc86a
Merge PR #6299 : PSD: Surface Blur, Smart Blur and Radial Blur smart filters open and save like Photoshop ( #6298 )
...
# Conflicts:
# crates/io/src/smart_map.rs
# docs/file-format-parity.md
# docs/scorecard.md
# scorecard/file_compat.toml
2026-10-21 01:09:08 +00:00
aiongg
c7ece37b15
Merge PR #6297 : PSD: parameterless smart filters (Blur, Sharpen, Find Edges, Solarize…) open and save like Photoshop ( #6296 )
...
# Conflicts:
# docs/file-format-parity.md
# docs/scorecard.md
# scorecard/file_compat.toml
2026-10-21 01:08:09 +00:00
aiongg
3a3796af05
Merge PR #6397 : PSD: Perspective Warp smart filters open and save like Photoshop ( #6268 )
...
# Conflicts:
# crates/io/src/smart_map.rs
# docs/file-format-parity.md
# docs/scorecard.md
# scorecard/file_compat.toml
2026-10-21 01:07:59 +00:00
aiongg
61ef780550
Merge PR #6398 : PSD: Hue/Saturation smart filters open and save like Photoshop ( #6267 )
2026-10-21 01:07:14 +00:00
aiongg
d1bed2f98d
Merge PR #6644 : Hue/Saturation: the Lightness track runs black, grey, white ( #6539 )
2026-10-21 01:06:14 +00:00