The port asked whether the refined sweep fit t=357.7 was measured against live-title-build4-no-plate.png, because if so one of us is 42 units out. It was not. 357.7 was solved against title-draw-capture-vertex-colours.log, a GPU per-draw capture of the submitted vertex buffer -- four observables at once, two quad centres and two vertex alphas. No framebuffer, no PNG. The gap is not a fitting error either. Posing the leaves directly, t=400 misses the captured quads by +169.0 and -172.2 px. Probe control: it reproduces the page's published t=355 centres, 981 and 478, exactly. Refutation attempted and FAILED: I expected the port's fit to be minimised by the quad leaving the screen -- 'best fit' meaning 'draws least', the same shape as the .tbm control that could not fail. At t=400 quad B is fully on screen and quad A is 319 of 400 px. Their number is fitting something present and it survives. The real reason the two must differ is better than 'different frames'. The sweeps are nested records on a free-running loop and their cycles differ -- 600 and 720, read from the record header +0x08 -- while the top-level clock stops at settle. So two captures of the same settled title share a screen time and not a sweep phase, by construction. Consequence for the port: a sweep position does not date a frame; it gives a phase on a 600- or 720-unit loop. And 357.7 is a joint fit over both leaves while the port's ~400 poses one, so the two are not comparable in kind -- the phases coincide only every LCM 3 600 units. Discriminator handed to the port rather than taken: if its ~400 is pteff03 and the frame is in the first cycle, pteff03a must be at centre 295 in that same frame. The fit is against its renderer, so it owns the check. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
63 lines
2.7 KiB
Plaintext
63 lines
2.7 KiB
Plaintext
# The title's two light-sweep leaves: position, alpha and on-screen extent
|
|
# across the window where the draw-capture fit (t=357.7) and the port's
|
|
# PNG fit (~400) disagree.
|
|
#
|
|
# Produced by: cargo run -p sylpheed-formats --example ptloop_leaf_sweep_at
|
|
# 2026-08-30, SYLPHEED_DISC=/disc, GP_TITLE entry 4.
|
|
#
|
|
# CONTROL: at t=355 this reproduces ui-leaf-vs-parent-alpha.md's published
|
|
# centres exactly -- 981 and 478. The probe is reading the same leaves.
|
|
#
|
|
# centre = keyframe x + pivot_x. The keyframe x is the quad's LEFT edge;
|
|
# the draw-capture fit is quoted in centres.
|
|
#
|
|
# At t=357.7: A centre 991.8, B centre 467.2 (measured: 992.0 / 467.2)
|
|
# At t=400: A centre 1161, B centre 295 -- +169.0 and -172.2 px off
|
|
#
|
|
# The two nested records cycle at DIFFERENT lengths, 600 and 720.
|
|
#
|
|
|
|
-- ptloop01.rat nested record: loop length (+0x08) = 600
|
|
|
|
== ptloop01.rat -> leaf pteff03.t32 (sprite None, pivot 200x90, 4 keyframes, last t=Some(Some(600)))
|
|
t | x | centre | a | on-screen px of a 400px-wide quad
|
|
340 | 721 | 921 | 190 | 400 px
|
|
350 | 761 | 961 | 193 | 400 px
|
|
355 | 781 | 981 | 195 | 400 px
|
|
357 | 789 | 989 | 195 | 400 px
|
|
358 | 793 | 993 | 196 | 400 px
|
|
360 | 801 | 1001 | 196 | 400 px
|
|
370 | 841 | 1041 | 200 | 400 px
|
|
380 | 881 | 1081 | 203 | 399 px
|
|
390 | 921 | 1121 | 206 | 359 px
|
|
395 | 941 | 1141 | 208 | 339 px
|
|
400 | 961 | 1161 | 209 | 319 px
|
|
405 | 981 | 1181 | 211 | 299 px
|
|
410 | 1001 | 1201 | 213 | 279 px
|
|
420 | 1041 | 1241 | 216 | 239 px
|
|
440 | 1121 | 1321 | 222 | 159 px
|
|
480 | 1281 | 1481 | 235 | 0 px *** ENTIRELY OFF SCREEN ***
|
|
540 | 1521 | 1721 | 255 | 0 px *** ENTIRELY OFF SCREEN ***
|
|
|
|
-- ptloop02.rat nested record: loop length (+0x08) = 720
|
|
|
|
== ptloop02.rat -> leaf pteff03a.t32 (sprite None, pivot 200x90, 4 keyframes, last t=Some(Some(720)))
|
|
t | x | centre | a | on-screen px of a 400px-wide quad
|
|
340 | 339 | 539 | 178 | 400 px
|
|
350 | 298 | 498 | 181 | 400 px
|
|
355 | 278 | 478 | 182 | 400 px
|
|
357 | 270 | 470 | 183 | 400 px
|
|
358 | 266 | 466 | 183 | 400 px
|
|
360 | 258 | 458 | 184 | 400 px
|
|
370 | 217 | 417 | 186 | 400 px
|
|
380 | 177 | 377 | 189 | 400 px
|
|
390 | 136 | 336 | 192 | 400 px
|
|
395 | 116 | 316 | 193 | 400 px
|
|
400 | 95 | 295 | 194 | 400 px
|
|
405 | 75 | 275 | 195 | 400 px
|
|
410 | 55 | 255 | 197 | 400 px
|
|
420 | 14 | 214 | 199 | 400 px
|
|
440 | -67 | 133 | 205 | 333 px
|
|
480 | -230 | -30 | 215 | 170 px
|
|
540 | -473 | -273 | 231 | 0 px *** ENTIRELY OFF SCREEN ***
|