Commit Graph
15 Commits
Author SHA1 Message Date
bflatasticandClaude Opus 5.5 05841f5cc6 Merge main into #1610; no conflicts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:23:38 +07:00
Marco Arnulfo efd6ab97dc fix(effects): cover Particle World's Texture Layer buffer before sampling it
Text and shape layers hand over a buffer that spans only their content;
the clamped sampling then stretched its edge pixels across the squares.
2026-10-30 00:52:10 +01:00
Marco Arnulfo a76c65bd00 fix(effects): keep Particle World on the GPU unless Textured Square draws the Texture Layer
A Texture Layer left set with another Particle Type forced the CPU for
nothing. gpu_supported now asks the same predicate the CPU path uses.
2026-10-30 00:52:10 +01:00
Marco Arnulfo 2a5e9066e5 fix(effects): draw Particle World's Texture Layer in the motion-trail samples too
With the shutter open the textured squares fell back to the particle
colour. Both branches now draw through the same sprite closure, and the
sharp frame goes through plan.post like the trails.
2026-10-30 00:52:10 +01:00
Marco Arnulfo 0c35a7a889 fix(effects): let CC Particle World's Textured Square use a Texture Layer (fixes #1465) 2026-10-30 00:52:10 +01:00
becauseno7 0ca3f72ac2 CC Bubbles: bubbles refract the layer's edge pixels on padded buffers too (#2024)
Refraction samples are clamped to the layer rectangle instead of the buffer, so a sample past the
layer's edge in a buffer with transparent padding (a half-resolution preview's, a text or shape
layer's) repeats the layer's edge pixels rather than reaching the pale colour that stands in for
transparent ones. Transparent pixels inside the layer still show it. Same bounds on the GPU path.

Re-pins the four half-resolution CC Bubbles golden hashes (aarch64 macOS); the full-resolution
ones are unchanged. Adds a CPU test and a GPU-vs-CPU parity test on padded buffers.
2026-10-30 04:34:30 +06:00
bflatasticandClaude Opus 5.5 65130dbcee Particles: particle_fx no longer imports params_key after the strict-clippy import list (#2496)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 00:27:28 +07:00
bflatastic 89fcd892eb Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 00:27:26 +07:00
Dylan M. Taylor d01871516a Refactor effects for strict Clippy checks 2026-10-28 06:09:21 +00:00
tylerjenningsw 8d008e53da Merge branch 'fix/particle-birth-history' into fix/particle-birth-history-ps2-mercury
# Conflicts:
#	crates/effects/src/sim.rs
2026-10-27 16:59:26 -04:00
tylerjenningsw cedc727da9 Merge remote-tracking branch 'origin/main' into fix/particle-birth-history
# Conflicts:
#	crates/effects/src/sim.rs
#	crates/render/src/lib.rs
2026-10-27 14:57:00 -04:00
aiongg b7b75ed37a style: cargo fmt on the moved files 2026-10-26 21:54:30 +00:00
aiongg 13fe6e5c03 refactor(effects): split sim.rs into sim/*.rs 2026-10-26 21:49:12 +00:00
aiongg 111767f196 refactor(effects): move src/sim.rs tests to src/sim/tests.rs 2026-10-26 21:49:11 +00:00
Shuvra Basak fa32010f67 CC Bubbles: bubbles at the layer's edges refract its edge pixels, not a pale fill (#2024)
Near the borders a bubble's refraction (liquid) or reflection (metal) sample
lands outside the layer. sample_bilinear returns transparent there, so the
pale stand-in colour for transparent pixels showed through, a band of washed-out
bubbles along every edge. Sample with edge pixels repeated instead, on the CPU
and in the GPU kernel; the pale colour stays for genuinely transparent pixels.

The CC Bubbles golden hashes are re-pinned (the half-resolution cases pad the
buffer with transparent pixels and are unchanged).
2026-10-24 22:22:48 +00:00