re: EXTRAS complete -- ptframe4, pteff21/22/23 and pteff10 are all ADDITIVE
The four elements the port measured as the worst on EXTRAS, and which appeared in no draw, were in a draw all along: the 24-index additive batch holds six quads and Canary printed the first two. Cap raised to 64, screen re-captured, all six named. Same draw as ptframe3, whose state was already measured -- the one-way implication doing real work. pteff10 is identified too, and it needed the resting SCALE: it ships as 409x144 and is drawn at 200 % x 500 % = 816x720. The matcher's 'try 1x and 2x' rule could not name it at any scale and reported a near miss against something else, which is a failure wearing the clothes of an answer. Candidates are now the declaration's pivot*2 scaled by the resting keyframe as well as the texture at 1x and 2x, and the tolerance is the log's own NDC print quantisation rather than a chosen number. Flagged rather than buried: pteff10 measuring additive is in tension with the port measuring it nearly exact under alpha-over. Both can be true for a dim semi-transparent glow over a dark background, and it is the one row a rendering check does not corroborate. Also stated: the three full-screen alpha-over draws are NOT individually identified -- four elements declare 1280x720 -- so the label on those rows is a candidate, not an identification. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
32
crates/sylpheed-formats/examples/rest_scale_of.rs
Normal file
32
crates/sylpheed-formats/examples/rest_scale_of.rs
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
//! The resting SCALE of each element, so a drawn quad's size can be predicted.
|
||||||
|
//!
|
||||||
|
//! One additive draw on both the main menu and `EXTRAS` measures 819.2 x 720 px
|
||||||
|
//! and matches no sprite at 1x or 2x. Scale is the missing factor: the keyframe
|
||||||
|
//! carries scale_x / scale_y in percent, and a sprite drawn at 200 % x 500 % is
|
||||||
|
//! nothing like its stored size.
|
||||||
|
//!
|
||||||
|
//! cargo run -p sylpheed-formats --example rest_scale_of -- 5 6 4
|
||||||
|
use sylpheed_formats::{pak::PakArchive, ui_layout};
|
||||||
|
use std::path::PathBuf;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let root = PathBuf::from(std::env::var("SYLPHEED_DISC").expect("SYLPHEED_DISC"));
|
||||||
|
let ar = PakArchive::open(root.join("dat/GP_TITLE.pak")).expect("GP_TITLE");
|
||||||
|
let builds: Vec<usize> = std::env::args().skip(1).filter_map(|a| a.parse().ok()).collect();
|
||||||
|
for build in if builds.is_empty() { vec![5usize, 6] } else { builds } {
|
||||||
|
let by = ar.read(&ar.entries()[build]).expect("entry");
|
||||||
|
let b = ui_layout::parse_build(&by).expect("build");
|
||||||
|
println!("=== GP_TITLE entry {build} ===");
|
||||||
|
println!("{:<22} {:>10} {:>7} {:>7} {:>12} {}", "element", "pivot(w,h)", "sx%", "sy%", "drawn px", "at 1x/2x of pivot*2");
|
||||||
|
for e in &b.elements {
|
||||||
|
let k = match e.rest() { Some(k) => k, None => continue };
|
||||||
|
let w = e.pivot_x * 2;
|
||||||
|
let h = e.pivot_y * 2;
|
||||||
|
let dw = w as f64 * k.scale_x as f64 / 100.0;
|
||||||
|
let dh = h as f64 * k.scale_y as f64 / 100.0;
|
||||||
|
println!("{:<22} {:>4},{:<5} {:>7} {:>7} {:>6.1}x{:<5.1} {:>6.1}x{:<5.1}",
|
||||||
|
e.name, w, h, k.scale_x, k.scale_y, dw, dh, dw * 2.0, dh * 2.0);
|
||||||
|
}
|
||||||
|
println!();
|
||||||
|
}
|
||||||
|
}
|
||||||
106
docs/re/captures/ui-draws/blend-extras-run2-2026-08-31.log
Normal file
106
docs/re/captures/ui-draws/blend-extras-run2-2026-08-31.log
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
# every draw in SUBMISSION ORDER, undeduplicated, frames 2..7
|
||||||
|
# tex dimensions identify the sprite; base is the guest address
|
||||||
|
0 prim=8 indices=3 vs=0x0A6D1DD7767FDF27 ps=0x2E372EA28CC404B7 blend=0x00010001[c:src=1 op=0 dst=0 a:src=1 op=0 dst=0] cc=0x00000000 mask=0xFFFF
|
||||||
|
vb=0x14EF66F8 stride=28 attrs=[57@0 38@12 ] fmt0=57 v: [-0.50,-0.50,z=0.00000] [1279.50,-0.50,z=0.00000] [1279.50,719.50,z=0.00000]
|
||||||
|
1 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14EF6750 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
2 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14EF67B0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [0.10,1.58,z=0.00000,col=A4FFFFFF] [0.64,1.02,z=0.00000,col=A4FFFFFF] [-0.20,-1.57,z=0.00000,col=A4FFFFFF] [-0.74,-1.02,z=0.00000,col=A4FFFFFF]
|
||||||
|
3 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
||||||
|
vb=0x14EF6810 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.68,1.02,z=0.00000,col=9DFFFFFF] [-0.24,1.81,z=0.00000,col=9DFFFFFF] [1.35,-1.02,z=0.00000,col=9DFFFFFF] [0.91,-1.81,z=0.00000,col=9DFFFFFF]
|
||||||
|
4 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x0C3B0000 1280x768 fmt=6]
|
||||||
|
vb=0x14EF6870 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
5 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0x5773DC18083C4C20 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF
|
||||||
|
vb=0x14EF68D0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=40000000] [1.00,1.00,z=0.00000,col=40000000] [1.00,-1.00,z=0.00000,col=40000000] [-1.00,-1.00,z=0.00000,col=40000000]
|
||||||
|
6 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
||||||
|
vb=0x14EF6930 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,-1.00,z=0.00000,col=FFFFFFFF] [-0.64,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
7 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14EF6990 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.31,0.36,z=0.00000,col=FFFFFFFF] [0.07,0.36,z=0.00000,col=FFFFFFFF] [0.07,-0.25,z=0.00000,col=FFFFFFFF] [-0.31,-0.25,z=0.00000,col=FFFFFFFF] [-0.09,0.12,z=0.00000,col=FFFFFFFF] [0.31,0.12,z=0.00000,col=FFFFFFFF] [0.31,-0.47,z=0.00000,col=FFFFFFFF] [-0.09,-0.47,z=0.00000,col=FFFFFFFF] [-0.32,0.60,z=0.00000,col=FFFFFFFF] [0.31,0.60,z=0.00000,col=FFFFFFFF] [0.31,0.59,z=0.00000,col=FFFFFFFF] [-0.32,0.59,z=0.00000,col=FFFFFFFF] [-0.33,0.63,z=0.00000,col=FFFFFFFF] [0.33,0.63,z=0.00000,col=FFFFFFFF] [0.33,0.61,z=0.00000,col=FFFFFFFF] [-0.33,0.61,z=0.00000,col=FFFFFFFF] [-0.34,0.66,z=0.00000,col=FFFFFFFF] [0.34,0.66,z=0.00000,col=FFFFFFFF] [0.34,0.64,z=0.00000,col=FFFFFFFF] [-0.34,0.64,z=0.00000,col=FFFFFFFF]
|
||||||
|
8 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14EF6BD0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.27,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.62,z=0.00000,col=FFFFFFFF] [-0.27,-0.62,z=0.00000,col=FFFFFFFF] [-0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.18,0.24,z=0.00000,col=FFFFFFFF] [0.24,0.24,z=0.00000,col=FFFFFFFF] [0.24,0.08,z=0.00000,col=FFFFFFFF] [-0.18,0.08,z=0.00000,col=FFFFFFFF] [-0.15,0.16,z=0.00000,col=FFFFFFFF] [-0.20,0.08,z=0.00000,col=FFFFFFFF] [-0.25,0.16,z=0.00000,col=FFFFFFFF] [-0.20,0.25,z=0.00000,col=FFFFFFFF] [-0.17,-0.00,z=0.00000,col=FFFFFFFF] [0.22,-0.00,z=0.00000,col=FFFFFFFF] [0.22,-0.12,z=0.00000,col=FFFFFFFF] [-0.17,-0.12,z=0.00000,col=FFFFFFFF] [-0.17,-0.23,z=0.00000,col=FFFFFFFF] [0.00,-0.23,z=0.00000,col=FFFFFFFF] [0.00,-0.35,z=0.00000,col=FFFFFFFF] [-0.17,-0.35,z=0.00000,col=FFFFFFFF]
|
||||||
|
9 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
||||||
|
10 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
||||||
|
--- frame 3 ---
|
||||||
|
11 prim=8 indices=3 vs=0x0A6D1DD7767FDF27 ps=0x2E372EA28CC404B7 blend=0x00010001[c:src=1 op=0 dst=0 a:src=1 op=0 dst=0] cc=0x00000000 mask=0xFFFF
|
||||||
|
vb=0x14F16EB8 stride=28 attrs=[57@0 38@12 ] fmt0=57 v: [-0.50,-0.50,z=0.00000] [1279.50,-0.50,z=0.00000] [1279.50,719.50,z=0.00000]
|
||||||
|
12 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F16F10 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
13 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F16F70 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [0.11,1.58,z=0.00000,col=A4FFFFFF] [0.65,1.02,z=0.00000,col=A4FFFFFF] [-0.20,-1.57,z=0.00000,col=A4FFFFFF] [-0.74,-1.02,z=0.00000,col=A4FFFFFF]
|
||||||
|
14 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F16FD0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.69,1.02,z=0.00000,col=9DFFFFFF] [-0.25,1.81,z=0.00000,col=9DFFFFFF] [1.35,-1.02,z=0.00000,col=9DFFFFFF] [0.90,-1.81,z=0.00000,col=9DFFFFFF]
|
||||||
|
15 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x0C3B0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F17030 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
16 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0x5773DC18083C4C20 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF
|
||||||
|
vb=0x14F17090 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=40000000] [1.00,1.00,z=0.00000,col=40000000] [1.00,-1.00,z=0.00000,col=40000000] [-1.00,-1.00,z=0.00000,col=40000000]
|
||||||
|
17 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F170F0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,-1.00,z=0.00000,col=FFFFFFFF] [-0.64,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
18 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F17150 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.31,0.36,z=0.00000,col=FFFFFFFF] [0.07,0.36,z=0.00000,col=FFFFFFFF] [0.07,-0.25,z=0.00000,col=FFFFFFFF] [-0.31,-0.25,z=0.00000,col=FFFFFFFF] [-0.09,0.12,z=0.00000,col=FFFFFFFF] [0.31,0.12,z=0.00000,col=FFFFFFFF] [0.31,-0.47,z=0.00000,col=FFFFFFFF] [-0.09,-0.47,z=0.00000,col=FFFFFFFF] [-0.32,0.60,z=0.00000,col=FFFFFFFF] [0.31,0.60,z=0.00000,col=FFFFFFFF] [0.31,0.59,z=0.00000,col=FFFFFFFF] [-0.32,0.59,z=0.00000,col=FFFFFFFF] [-0.33,0.63,z=0.00000,col=FFFFFFFF] [0.33,0.63,z=0.00000,col=FFFFFFFF] [0.33,0.61,z=0.00000,col=FFFFFFFF] [-0.33,0.61,z=0.00000,col=FFFFFFFF] [-0.34,0.66,z=0.00000,col=FFFFFFFF] [0.34,0.66,z=0.00000,col=FFFFFFFF] [0.34,0.64,z=0.00000,col=FFFFFFFF] [-0.34,0.64,z=0.00000,col=FFFFFFFF]
|
||||||
|
19 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F17390 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.27,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.62,z=0.00000,col=FFFFFFFF] [-0.27,-0.62,z=0.00000,col=FFFFFFFF] [-0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.18,0.24,z=0.00000,col=FFFFFFFF] [0.24,0.24,z=0.00000,col=FFFFFFFF] [0.24,0.08,z=0.00000,col=FFFFFFFF] [-0.18,0.08,z=0.00000,col=FFFFFFFF] [-0.15,0.15,z=0.00000,col=FFFFFFFF] [-0.20,0.07,z=0.00000,col=FFFFFFFF] [-0.25,0.17,z=0.00000,col=FFFFFFFF] [-0.20,0.25,z=0.00000,col=FFFFFFFF] [-0.17,-0.00,z=0.00000,col=FFFFFFFF] [0.22,-0.00,z=0.00000,col=FFFFFFFF] [0.22,-0.12,z=0.00000,col=FFFFFFFF] [-0.17,-0.12,z=0.00000,col=FFFFFFFF] [-0.17,-0.23,z=0.00000,col=FFFFFFFF] [0.00,-0.23,z=0.00000,col=FFFFFFFF] [0.00,-0.35,z=0.00000,col=FFFFFFFF] [-0.17,-0.35,z=0.00000,col=FFFFFFFF]
|
||||||
|
20 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
||||||
|
21 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
||||||
|
--- frame 4 ---
|
||||||
|
22 prim=8 indices=3 vs=0x0A6D1DD7767FDF27 ps=0x2E372EA28CC404B7 blend=0x00010001[c:src=1 op=0 dst=0 a:src=1 op=0 dst=0] cc=0x00000000 mask=0xFFFF
|
||||||
|
vb=0x14F37678 stride=28 attrs=[57@0 38@12 ] fmt0=57 v: [-0.50,-0.50,z=0.00000] [1279.50,-0.50,z=0.00000] [1279.50,719.50,z=0.00000]
|
||||||
|
23 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F376D0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
24 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F37730 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [0.11,1.58,z=0.00000,col=A4FFFFFF] [0.65,1.02,z=0.00000,col=A4FFFFFF] [-0.19,-1.57,z=0.00000,col=A4FFFFFF] [-0.73,-1.02,z=0.00000,col=A4FFFFFF]
|
||||||
|
25 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F37790 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.69,1.02,z=0.00000,col=9EFFFFFF] [-0.25,1.81,z=0.00000,col=9EFFFFFF] [1.34,-1.02,z=0.00000,col=9EFFFFFF] [0.90,-1.81,z=0.00000,col=9EFFFFFF]
|
||||||
|
26 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x0C3B0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F377F0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
27 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0x5773DC18083C4C20 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF
|
||||||
|
vb=0x14F37850 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=40000000] [1.00,1.00,z=0.00000,col=40000000] [1.00,-1.00,z=0.00000,col=40000000] [-1.00,-1.00,z=0.00000,col=40000000]
|
||||||
|
28 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F378B0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,-1.00,z=0.00000,col=FFFFFFFF] [-0.64,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
29 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F37910 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.31,0.36,z=0.00000,col=FFFFFFFF] [0.07,0.36,z=0.00000,col=FFFFFFFF] [0.07,-0.25,z=0.00000,col=FFFFFFFF] [-0.31,-0.25,z=0.00000,col=FFFFFFFF] [-0.09,0.12,z=0.00000,col=FFFFFFFF] [0.31,0.12,z=0.00000,col=FFFFFFFF] [0.31,-0.47,z=0.00000,col=FFFFFFFF] [-0.09,-0.47,z=0.00000,col=FFFFFFFF] [-0.32,0.60,z=0.00000,col=FFFFFFFF] [0.31,0.60,z=0.00000,col=FFFFFFFF] [0.31,0.59,z=0.00000,col=FFFFFFFF] [-0.32,0.59,z=0.00000,col=FFFFFFFF] [-0.33,0.63,z=0.00000,col=FFFFFFFF] [0.33,0.63,z=0.00000,col=FFFFFFFF] [0.33,0.61,z=0.00000,col=FFFFFFFF] [-0.33,0.61,z=0.00000,col=FFFFFFFF] [-0.34,0.66,z=0.00000,col=FFFFFFFF] [0.34,0.66,z=0.00000,col=FFFFFFFF] [0.34,0.64,z=0.00000,col=FFFFFFFF] [-0.34,0.64,z=0.00000,col=FFFFFFFF]
|
||||||
|
30 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F37B50 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.27,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.62,z=0.00000,col=FFFFFFFF] [-0.27,-0.62,z=0.00000,col=FFFFFFFF] [-0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.18,0.24,z=0.00000,col=FFFFFFFF] [0.24,0.24,z=0.00000,col=FFFFFFFF] [0.24,0.08,z=0.00000,col=FFFFFFFF] [-0.18,0.08,z=0.00000,col=FFFFFFFF] [-0.15,0.15,z=0.00000,col=FFFFFFFF] [-0.20,0.07,z=0.00000,col=FFFFFFFF] [-0.25,0.17,z=0.00000,col=FFFFFFFF] [-0.20,0.25,z=0.00000,col=FFFFFFFF] [-0.17,-0.00,z=0.00000,col=FFFFFFFF] [0.22,-0.00,z=0.00000,col=FFFFFFFF] [0.22,-0.12,z=0.00000,col=FFFFFFFF] [-0.17,-0.12,z=0.00000,col=FFFFFFFF] [-0.17,-0.23,z=0.00000,col=FFFFFFFF] [0.00,-0.23,z=0.00000,col=FFFFFFFF] [0.00,-0.35,z=0.00000,col=FFFFFFFF] [-0.17,-0.35,z=0.00000,col=FFFFFFFF]
|
||||||
|
31 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
||||||
|
32 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
||||||
|
--- frame 5 ---
|
||||||
|
33 prim=8 indices=3 vs=0x0A6D1DD7767FDF27 ps=0x2E372EA28CC404B7 blend=0x00010001[c:src=1 op=0 dst=0 a:src=1 op=0 dst=0] cc=0x00000000 mask=0xFFFF
|
||||||
|
vb=0x14F57E38 stride=28 attrs=[57@0 38@12 ] fmt0=57 v: [-0.50,-0.50,z=0.00000] [1279.50,-0.50,z=0.00000] [1279.50,719.50,z=0.00000]
|
||||||
|
34 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F57E90 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
35 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F57EF0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [0.12,1.58,z=0.00000,col=A5FFFFFF] [0.66,1.02,z=0.00000,col=A5FFFFFF] [-0.19,-1.57,z=0.00000,col=A5FFFFFF] [-0.73,-1.02,z=0.00000,col=A5FFFFFF]
|
||||||
|
36 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F57F50 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.70,1.02,z=0.00000,col=9EFFFFFF] [-0.25,1.81,z=0.00000,col=9EFFFFFF] [1.34,-1.02,z=0.00000,col=9EFFFFFF] [0.90,-1.81,z=0.00000,col=9EFFFFFF]
|
||||||
|
37 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x0C3B0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F57FB0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
38 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0x5773DC18083C4C20 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF
|
||||||
|
vb=0x14F58010 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=40000000] [1.00,1.00,z=0.00000,col=40000000] [1.00,-1.00,z=0.00000,col=40000000] [-1.00,-1.00,z=0.00000,col=40000000]
|
||||||
|
39 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F58070 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,-1.00,z=0.00000,col=FFFFFFFF] [-0.64,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
40 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F580D0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.31,0.36,z=0.00000,col=FFFFFFFF] [0.07,0.36,z=0.00000,col=FFFFFFFF] [0.07,-0.25,z=0.00000,col=FFFFFFFF] [-0.31,-0.25,z=0.00000,col=FFFFFFFF] [-0.09,0.12,z=0.00000,col=FFFFFFFF] [0.31,0.12,z=0.00000,col=FFFFFFFF] [0.31,-0.47,z=0.00000,col=FFFFFFFF] [-0.09,-0.47,z=0.00000,col=FFFFFFFF] [-0.32,0.60,z=0.00000,col=FFFFFFFF] [0.31,0.60,z=0.00000,col=FFFFFFFF] [0.31,0.59,z=0.00000,col=FFFFFFFF] [-0.32,0.59,z=0.00000,col=FFFFFFFF] [-0.33,0.63,z=0.00000,col=FFFFFFFF] [0.33,0.63,z=0.00000,col=FFFFFFFF] [0.33,0.61,z=0.00000,col=FFFFFFFF] [-0.33,0.61,z=0.00000,col=FFFFFFFF] [-0.34,0.66,z=0.00000,col=FFFFFFFF] [0.34,0.66,z=0.00000,col=FFFFFFFF] [0.34,0.64,z=0.00000,col=FFFFFFFF] [-0.34,0.64,z=0.00000,col=FFFFFFFF]
|
||||||
|
41 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F58310 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.27,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.62,z=0.00000,col=FFFFFFFF] [-0.27,-0.62,z=0.00000,col=FFFFFFFF] [-0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.18,0.24,z=0.00000,col=FFFFFFFF] [0.24,0.24,z=0.00000,col=FFFFFFFF] [0.24,0.08,z=0.00000,col=FFFFFFFF] [-0.18,0.08,z=0.00000,col=FFFFFFFF] [-0.15,0.14,z=0.00000,col=FFFFFFFF] [-0.21,0.08,z=0.00000,col=FFFFFFFF] [-0.25,0.18,z=0.00000,col=FFFFFFFF] [-0.19,0.25,z=0.00000,col=FFFFFFFF] [-0.17,-0.00,z=0.00000,col=FFFFFFFF] [0.22,-0.00,z=0.00000,col=FFFFFFFF] [0.22,-0.12,z=0.00000,col=FFFFFFFF] [-0.17,-0.12,z=0.00000,col=FFFFFFFF] [-0.17,-0.23,z=0.00000,col=FFFFFFFF] [0.00,-0.23,z=0.00000,col=FFFFFFFF] [0.00,-0.35,z=0.00000,col=FFFFFFFF] [-0.17,-0.35,z=0.00000,col=FFFFFFFF]
|
||||||
|
42 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
||||||
|
43 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
||||||
|
--- frame 7 ---
|
||||||
|
44 prim=8 indices=3 vs=0x0A6D1DD7767FDF27 ps=0x2E372EA28CC404B7 blend=0x00010001[c:src=1 op=0 dst=0 a:src=1 op=0 dst=0] cc=0x00000000 mask=0xFFFF
|
||||||
|
vb=0x14F98678 stride=28 attrs=[57@0 38@12 ] fmt0=57 v: [-0.50,-0.50,z=0.00000] [1279.50,-0.50,z=0.00000] [1279.50,719.50,z=0.00000]
|
||||||
|
45 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F986D0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
46 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F98730 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [0.13,1.58,z=0.00000,col=A5FFFFFF] [0.67,1.02,z=0.00000,col=A5FFFFFF] [-0.17,-1.57,z=0.00000,col=A5FFFFFF] [-0.71,-1.02,z=0.00000,col=A5FFFFFF]
|
||||||
|
47 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F98790 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.71,1.02,z=0.00000,col=9EFFFFFF] [-0.27,1.81,z=0.00000,col=9EFFFFFF] [1.32,-1.02,z=0.00000,col=9EFFFFFF] [0.88,-1.81,z=0.00000,col=9EFFFFFF]
|
||||||
|
48 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x0C3B0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F987F0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
49 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0x5773DC18083C4C20 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF
|
||||||
|
vb=0x14F98850 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=40000000] [1.00,1.00,z=0.00000,col=40000000] [1.00,-1.00,z=0.00000,col=40000000] [-1.00,-1.00,z=0.00000,col=40000000]
|
||||||
|
50 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
||||||
|
vb=0x14F988B0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,-1.00,z=0.00000,col=FFFFFFFF] [-0.64,-1.00,z=0.00000,col=FFFFFFFF]
|
||||||
|
51 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F98910 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.31,0.36,z=0.00000,col=FFFFFFFF] [0.07,0.36,z=0.00000,col=FFFFFFFF] [0.07,-0.25,z=0.00000,col=FFFFFFFF] [-0.31,-0.25,z=0.00000,col=FFFFFFFF] [-0.09,0.12,z=0.00000,col=FFFFFFFF] [0.31,0.12,z=0.00000,col=FFFFFFFF] [0.31,-0.47,z=0.00000,col=FFFFFFFF] [-0.09,-0.47,z=0.00000,col=FFFFFFFF] [-0.32,0.60,z=0.00000,col=FFFFFFFF] [0.31,0.60,z=0.00000,col=FFFFFFFF] [0.31,0.59,z=0.00000,col=FFFFFFFF] [-0.32,0.59,z=0.00000,col=FFFFFFFF] [-0.33,0.63,z=0.00000,col=FFFFFFFF] [0.33,0.63,z=0.00000,col=FFFFFFFF] [0.33,0.61,z=0.00000,col=FFFFFFFF] [-0.33,0.61,z=0.00000,col=FFFFFFFF] [-0.34,0.66,z=0.00000,col=FFFFFFFF] [0.34,0.66,z=0.00000,col=FFFFFFFF] [0.34,0.64,z=0.00000,col=FFFFFFFF] [-0.34,0.64,z=0.00000,col=FFFFFFFF]
|
||||||
|
52 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
||||||
|
vb=0x14F98B50 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.27,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.62,z=0.00000,col=FFFFFFFF] [-0.27,-0.62,z=0.00000,col=FFFFFFFF] [-0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.18,0.24,z=0.00000,col=FFFFFFFF] [0.24,0.24,z=0.00000,col=FFFFFFFF] [0.24,0.08,z=0.00000,col=FFFFFFFF] [-0.18,0.08,z=0.00000,col=FFFFFFFF] [-0.16,0.12,z=0.00000,col=FFFFFFFF] [-0.22,0.08,z=0.00000,col=FFFFFFFF] [-0.24,0.20,z=0.00000,col=FFFFFFFF] [-0.18,0.24,z=0.00000,col=FFFFFFFF] [-0.17,-0.00,z=0.00000,col=FFFFFFFF] [0.22,-0.00,z=0.00000,col=FFFFFFFF] [0.22,-0.12,z=0.00000,col=FFFFFFFF] [-0.17,-0.12,z=0.00000,col=FFFFFFFF] [-0.17,-0.23,z=0.00000,col=FFFFFFFF] [0.00,-0.23,z=0.00000,col=FFFFFFFF] [0.00,-0.35,z=0.00000,col=FFFFFFFF] [-0.17,-0.35,z=0.00000,col=FFFFFFFF]
|
||||||
|
53 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
||||||
|
54 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
||||||
147
docs/re/data/ui-blend-extras-complete.txt
Normal file
147
docs/re/data/ui-blend-extras-complete.txt
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
# EXTRAS, COMPLETE. Every element named, every blend measured. 2026-08-31, run 2.
|
||||||
|
#
|
||||||
|
# The first EXTRAS capture reported four of this screen's elements as appearing in
|
||||||
|
# NO draw. They were in a draw all along: the 24-index additive batch holds SIX
|
||||||
|
# quads and Canary's vertex dump was capped at 8 vertices = two. Cap raised to 64.
|
||||||
|
#
|
||||||
|
# Two changes to the matcher, both because it had been dressing a failure up as a
|
||||||
|
# near miss:
|
||||||
|
#
|
||||||
|
# * a candidate size is now the declaration's `pivot * 2` scaled by the RESTING
|
||||||
|
# keyframe's scale, as well as the texture's own size at 1x and 2x. That is
|
||||||
|
# the only thing that names `pteff10` -- it ships as 409x144 and is drawn at
|
||||||
|
# 200 % x 500 % = 816x720. Scale-guessing could not name it at all and offered
|
||||||
|
# a near miss against something else.
|
||||||
|
# * the tolerance is the NDC PRINT QUANTISATION, not a fudge factor. The log
|
||||||
|
# prints NDC to two decimals, so a width is quantised to 6.4 px and a height to
|
||||||
|
# 3.6 px, and a match is reported in units of that.
|
||||||
|
#
|
||||||
|
# CONTROL: the two rotated sweep strips, measured independently at 1134 and 1303
|
||||||
|
# px in data/title-sweep-drawn-at-rest.txt, reproduce on every screen.
|
||||||
|
#
|
||||||
|
# ⚠️ The three full-screen 1280x720 alpha-over draws are NOT individually
|
||||||
|
# identified: ptbase, pteff05, pteff02.prm and pteff00.prm all declare 1280x720,
|
||||||
|
# so size cannot separate them. Two of the three carry a bound texture and one
|
||||||
|
# does not, which narrows it and does not close it. All four are alpha-over, so
|
||||||
|
# nothing in the answer turns on it -- but the label the tool prints for those
|
||||||
|
# rows is A candidate, not an identification.
|
||||||
|
|
||||||
|
=== EXTRAS (GP_TITLE entry 6), 55 draws over 6 frames, vertex cap 64 ===
|
||||||
|
draw prim idx blend state quad px (w x h) best name match
|
||||||
|
1 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
2 13 4 0x01010101 ADDITIVE 883.2 x 1134.0 (no match, nearest pteff10.t32 [declared] off 125.5 quanta)
|
||||||
|
3 13 4 0x01010101 ADDITIVE 1299.2 x 1303.2 (no match, nearest ptbase.t32 [declared] off 165.0 quanta)
|
||||||
|
4 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
5 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
6 13 4 0x01010101 ADDITIVE 819.2 x 720.0 pteff10.t32 [declared]
|
||||||
|
7 13 24 0x01010101 ADDITIVE 614.4 x 518.4 pteff20.t32 [texture@2x]
|
||||||
|
7 13 24 0x01010101 ADDITIVE 243.2 x 219.6 ptframe3.t32 [declared]
|
||||||
|
7 13 24 0x01010101 ADDITIVE 256.0 x 212.4 ptframe4.t32 [declared]
|
||||||
|
7 13 24 0x01010101 ADDITIVE 403.2 x 3.6 pteff21.t32 [texture]
|
||||||
|
7 13 24 0x01010101 ADDITIVE 422.4 x 7.2 pteff22.t32 [texture]
|
||||||
|
7 13 24 0x01010101 ADDITIVE 435.2 x 7.2 pteff23.t32 [texture]
|
||||||
|
8 13 24 0x07010701 alpha-over(premul) 352.0 x 39.6 ptmsg2.t32 [texture]
|
||||||
|
8 13 24 0x07010701 alpha-over(premul) 179.2 x 32.4 pttitle.t32 [texture]
|
||||||
|
8 13 24 0x07010701 alpha-over(premul) 268.8 x 57.6 ptbtn11f.t32 [texture]
|
||||||
|
8 13 24 0x07010701 alpha-over(premul) 64.0 x 61.2 (no match, nearest ptbtn13.rat [declared] off 7.6 quanta)
|
||||||
|
8 13 24 0x07010701 alpha-over(premul) 249.6 x 43.2 ptbtn12.t32 [texture]
|
||||||
|
8 13 24 0x07010701 alpha-over(premul) 108.8 x 43.2 ptbtn13.t32 [texture]
|
||||||
|
12 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
13 13 4 0x01010101 ADDITIVE 889.6 x 1134.0 (no match, nearest pteff10.t32 [declared] off 126.5 quanta)
|
||||||
|
14 13 4 0x01010101 ADDITIVE 1305.6 x 1303.2 (no match, nearest ptbase.t32 [declared] off 166.0 quanta)
|
||||||
|
15 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
16 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
17 13 4 0x01010101 ADDITIVE 819.2 x 720.0 pteff10.t32 [declared]
|
||||||
|
18 13 24 0x01010101 ADDITIVE 614.4 x 518.4 pteff20.t32 [texture@2x]
|
||||||
|
18 13 24 0x01010101 ADDITIVE 243.2 x 219.6 ptframe3.t32 [declared]
|
||||||
|
18 13 24 0x01010101 ADDITIVE 256.0 x 212.4 ptframe4.t32 [declared]
|
||||||
|
18 13 24 0x01010101 ADDITIVE 403.2 x 3.6 pteff21.t32 [texture]
|
||||||
|
18 13 24 0x01010101 ADDITIVE 422.4 x 7.2 pteff22.t32 [texture]
|
||||||
|
18 13 24 0x01010101 ADDITIVE 435.2 x 7.2 pteff23.t32 [texture]
|
||||||
|
19 13 24 0x07010701 alpha-over(premul) 352.0 x 39.6 ptmsg2.t32 [texture]
|
||||||
|
19 13 24 0x07010701 alpha-over(premul) 179.2 x 32.4 pttitle.t32 [texture]
|
||||||
|
19 13 24 0x07010701 alpha-over(premul) 268.8 x 57.6 ptbtn11f.t32 [texture]
|
||||||
|
19 13 24 0x07010701 alpha-over(premul) 64.0 x 64.8 (no match, nearest ptbtn13.rat [declared] off 8.6 quanta)
|
||||||
|
19 13 24 0x07010701 alpha-over(premul) 249.6 x 43.2 ptbtn12.t32 [texture]
|
||||||
|
19 13 24 0x07010701 alpha-over(premul) 108.8 x 43.2 ptbtn13.t32 [texture]
|
||||||
|
23 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
24 13 4 0x01010101 ADDITIVE 883.2 x 1134.0 (no match, nearest pteff10.t32 [declared] off 125.5 quanta)
|
||||||
|
25 13 4 0x01010101 ADDITIVE 1299.2 x 1303.2 (no match, nearest ptbase.t32 [declared] off 165.0 quanta)
|
||||||
|
26 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
27 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
28 13 4 0x01010101 ADDITIVE 819.2 x 720.0 pteff10.t32 [declared]
|
||||||
|
29 13 24 0x01010101 ADDITIVE 614.4 x 518.4 pteff20.t32 [texture@2x]
|
||||||
|
29 13 24 0x01010101 ADDITIVE 243.2 x 219.6 ptframe3.t32 [declared]
|
||||||
|
29 13 24 0x01010101 ADDITIVE 256.0 x 212.4 ptframe4.t32 [declared]
|
||||||
|
29 13 24 0x01010101 ADDITIVE 403.2 x 3.6 pteff21.t32 [texture]
|
||||||
|
29 13 24 0x01010101 ADDITIVE 422.4 x 7.2 pteff22.t32 [texture]
|
||||||
|
29 13 24 0x01010101 ADDITIVE 435.2 x 7.2 pteff23.t32 [texture]
|
||||||
|
30 13 24 0x07010701 alpha-over(premul) 352.0 x 39.6 ptmsg2.t32 [texture]
|
||||||
|
30 13 24 0x07010701 alpha-over(premul) 179.2 x 32.4 pttitle.t32 [texture]
|
||||||
|
30 13 24 0x07010701 alpha-over(premul) 268.8 x 57.6 ptbtn11f.t32 [texture]
|
||||||
|
30 13 24 0x07010701 alpha-over(premul) 64.0 x 64.8 (no match, nearest ptbtn13.rat [declared] off 8.6 quanta)
|
||||||
|
30 13 24 0x07010701 alpha-over(premul) 249.6 x 43.2 ptbtn12.t32 [texture]
|
||||||
|
30 13 24 0x07010701 alpha-over(premul) 108.8 x 43.2 ptbtn13.t32 [texture]
|
||||||
|
34 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
35 13 4 0x01010101 ADDITIVE 889.6 x 1134.0 (no match, nearest pteff10.t32 [declared] off 126.5 quanta)
|
||||||
|
36 13 4 0x01010101 ADDITIVE 1305.6 x 1303.2 (no match, nearest ptbase.t32 [declared] off 166.0 quanta)
|
||||||
|
37 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
38 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
39 13 4 0x01010101 ADDITIVE 819.2 x 720.0 pteff10.t32 [declared]
|
||||||
|
40 13 24 0x01010101 ADDITIVE 614.4 x 518.4 pteff20.t32 [texture@2x]
|
||||||
|
40 13 24 0x01010101 ADDITIVE 243.2 x 219.6 ptframe3.t32 [declared]
|
||||||
|
40 13 24 0x01010101 ADDITIVE 256.0 x 212.4 ptframe4.t32 [declared]
|
||||||
|
40 13 24 0x01010101 ADDITIVE 403.2 x 3.6 pteff21.t32 [texture]
|
||||||
|
40 13 24 0x01010101 ADDITIVE 422.4 x 7.2 pteff22.t32 [texture]
|
||||||
|
40 13 24 0x01010101 ADDITIVE 435.2 x 7.2 pteff23.t32 [texture]
|
||||||
|
41 13 24 0x07010701 alpha-over(premul) 352.0 x 39.6 ptmsg2.t32 [texture]
|
||||||
|
41 13 24 0x07010701 alpha-over(premul) 179.2 x 32.4 pttitle.t32 [texture]
|
||||||
|
41 13 24 0x07010701 alpha-over(premul) 268.8 x 57.6 ptbtn11f.t32 [texture]
|
||||||
|
41 13 24 0x07010701 alpha-over(premul) 64.0 x 61.2 (no match, nearest ptbtn13.rat [declared] off 7.6 quanta)
|
||||||
|
41 13 24 0x07010701 alpha-over(premul) 249.6 x 43.2 ptbtn12.t32 [texture]
|
||||||
|
41 13 24 0x07010701 alpha-over(premul) 108.8 x 43.2 ptbtn13.t32 [texture]
|
||||||
|
45 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
46 13 4 0x01010101 ADDITIVE 883.2 x 1134.0 (no match, nearest pteff10.t32 [declared] off 125.5 quanta)
|
||||||
|
47 13 4 0x01010101 ADDITIVE 1299.2 x 1303.2 (no match, nearest ptbase.t32 [declared] off 165.0 quanta)
|
||||||
|
48 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
49 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 [declared]
|
||||||
|
50 13 4 0x01010101 ADDITIVE 819.2 x 720.0 pteff10.t32 [declared]
|
||||||
|
51 13 24 0x01010101 ADDITIVE 614.4 x 518.4 pteff20.t32 [texture@2x]
|
||||||
|
51 13 24 0x01010101 ADDITIVE 243.2 x 219.6 ptframe3.t32 [declared]
|
||||||
|
51 13 24 0x01010101 ADDITIVE 256.0 x 212.4 ptframe4.t32 [declared]
|
||||||
|
51 13 24 0x01010101 ADDITIVE 403.2 x 3.6 pteff21.t32 [texture]
|
||||||
|
51 13 24 0x01010101 ADDITIVE 422.4 x 7.2 pteff22.t32 [texture]
|
||||||
|
51 13 24 0x01010101 ADDITIVE 435.2 x 7.2 pteff23.t32 [texture]
|
||||||
|
52 13 24 0x07010701 alpha-over(premul) 352.0 x 39.6 ptmsg2.t32 [texture]
|
||||||
|
52 13 24 0x07010701 alpha-over(premul) 179.2 x 32.4 pttitle.t32 [texture]
|
||||||
|
52 13 24 0x07010701 alpha-over(premul) 268.8 x 57.6 ptbtn11f.t32 [texture]
|
||||||
|
52 13 24 0x07010701 alpha-over(premul) 51.2 x 57.6 (no match, nearest ptbtneff02.t32 [texture] off 4.7 quanta)
|
||||||
|
52 13 24 0x07010701 alpha-over(premul) 249.6 x 43.2 ptbtn12.t32 [texture]
|
||||||
|
52 13 24 0x07010701 alpha-over(premul) 108.8 x 43.2 ptbtn13.t32 [texture]
|
||||||
|
|
||||||
|
CONTROL — the two rotated sweep strips measured independently at 1134 and 1303 px:
|
||||||
|
tall quads found: ['1134', '1303']
|
||||||
|
PASS
|
||||||
|
|
||||||
|
=== the resting scale that makes pteff10 identifiable ===
|
||||||
|
=== GP_TITLE entry 6 ===
|
||||||
|
element pivot(w,h) sx% sy% drawn px at 1x/2x of pivot*2
|
||||||
|
ptframe3.t32 246,220 100 100 246.0x220.0 492.0x440.0
|
||||||
|
ptframe4.t32 256,210 100 100 256.0x210.0 512.0x420.0
|
||||||
|
ptbtn11.rat 256,44 100 100 256.0x44.0 512.0x88.0
|
||||||
|
ptbtn12.rat 252,44 100 100 252.0x44.0 504.0x88.0
|
||||||
|
ptbtn13.rat 82,44 100 100 82.0x44.0 164.0x88.0
|
||||||
|
ptmsg2.t32 384,38 100 100 384.0x38.0 768.0x76.0
|
||||||
|
pteff20.t32 308,260 200 200 616.0x520.0 1232.0x1040.0
|
||||||
|
pteff21.t32 404,6 100 100 404.0x6.0 808.0x12.0
|
||||||
|
pteff22.t32 424,8 100 100 424.0x8.0 848.0x16.0
|
||||||
|
pteff23.t32 440,8 100 100 440.0x8.0 880.0x16.0
|
||||||
|
pttitle.t32 194,36 100 100 194.0x36.0 388.0x72.0
|
||||||
|
ptbase.t32 640,360 200 200 1280.0x720.0 2560.0x1440.0
|
||||||
|
pteff05.t32 1280,720 100 100 1280.0x720.0 2560.0x1440.0
|
||||||
|
pteff02.prm 1280,720 100 100 1280.0x720.0 2560.0x1440.0
|
||||||
|
ptloop01.rat 400,180 100 100 400.0x180.0 800.0x360.0
|
||||||
|
ptloop02.rat 400,180 100 100 400.0x180.0 800.0x360.0
|
||||||
|
pteff10.t32 408,144 200 500 816.0x720.0 1632.0x1440.0
|
||||||
|
pteff00.prm 1280,720 100 100 1280.0x720.0 2560.0x1440.0
|
||||||
|
|
||||||
@@ -223,3 +223,63 @@ measures submission and geometry, not the light they add. A port whose render
|
|||||||
looks worse with them visible has either a placement, a phase or a magnitude
|
looks worse with them visible has either a placement, a phase or a magnitude
|
||||||
problem — but "the game does not draw them here" is not available as an
|
problem — but "the game does not draw them here" is not available as an
|
||||||
explanation any more.
|
explanation any more.
|
||||||
|
|
||||||
|
## ✅ 2026-08-31 (final) — `EXTRAS` is COMPLETE, and the four missing elements are ADDITIVE
|
||||||
|
|
||||||
|
The four elements the port measured as the worst on `EXTRAS`, and which appeared
|
||||||
|
in no draw, were in a draw all along. `EXTRAS`' 24-index additive batch holds
|
||||||
|
**six** quads; Canary's vertex dump printed the first **two**.
|
||||||
|
|
||||||
|
[`data/ui-blend-extras-complete.txt`](../data/ui-blend-extras-complete.txt) ·
|
||||||
|
[`captures/ui-draws/blend-extras-run2-2026-08-31.log`](../captures/ui-draws/blend-extras-run2-2026-08-31.log)
|
||||||
|
|
||||||
|
| draw | quad px | element | blend |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 7 | 614.4 × 518.4 | `pteff20` | **ADDITIVE** |
|
||||||
|
| 7 | 243.2 × 219.6 | `ptframe3` | **ADDITIVE** |
|
||||||
|
| 7 | 256.0 × 212.4 | **`ptframe4`** | **ADDITIVE** |
|
||||||
|
| 7 | 403.2 × 3.6 | **`pteff21`** | **ADDITIVE** |
|
||||||
|
| 7 | 422.4 × 7.2 | **`pteff22`** | **ADDITIVE** |
|
||||||
|
| 7 | 435.2 × 7.2 | **`pteff23`** | **ADDITIVE** |
|
||||||
|
| 6 | 819.2 × 720 | **`pteff10`** | **ADDITIVE** |
|
||||||
|
| 8 | 352.0 × 39.6 | `ptmsg2` | alpha-over |
|
||||||
|
| 8 | 179.2 × 32.4 | `pttitle` | alpha-over |
|
||||||
|
| 8 | 268.8 × 57.6 | `ptbtn11f` | alpha-over |
|
||||||
|
| 8 | 249.6 × 43.2 | `ptbtn12` | alpha-over |
|
||||||
|
| 8 | 108.8 × 43.2 | `ptbtn13` | alpha-over |
|
||||||
|
|
||||||
|
**All six are in one draw with `ptframe3`, whose state was already measured**, so
|
||||||
|
this is the one-way implication doing real work: same draw ⇒ same state.
|
||||||
|
|
||||||
|
### `pteff10` is identified, and it needs the resting SCALE
|
||||||
|
|
||||||
|
`pteff10` ships as **409 × 144** and is drawn at **200 % × 500 % = 816 × 720**.
|
||||||
|
The matcher's old "try 1× and 2×" rule could not name it at any scale, and
|
||||||
|
reported a near miss against something else instead — a failure wearing the
|
||||||
|
clothes of an answer. Candidates are now the declaration's `pivot × 2` scaled by
|
||||||
|
the **resting keyframe**, as well as the texture at 1× and 2×, and the tolerance
|
||||||
|
is the log's own **NDC print quantisation** (two decimals → 6.4 px in x, 3.6 px
|
||||||
|
in y) rather than a chosen number.
|
||||||
|
|
||||||
|
🟡 **And `pteff10` being additive is a live tension worth stating.** The port
|
||||||
|
measures it as **nearly exact** rendered alpha-over. Both can be true — it is a
|
||||||
|
dim, wholly semi-transparent glow (max alpha 130) over a dark background, where
|
||||||
|
additive and alpha-over nearly coincide — but it is the one row of this table
|
||||||
|
that a rendering check does *not* independently corroborate, and it should be
|
||||||
|
adopted knowing that.
|
||||||
|
|
||||||
|
### What is still not identified, on any screen
|
||||||
|
|
||||||
|
* **the two rotated sweep strips** — matched by their AABB, not by a declared
|
||||||
|
size, because they are rotated nested leaves. The control pins them at 1134 and
|
||||||
|
1303 px on every screen and the port has an independent 884 px footprint for
|
||||||
|
the width, so they are identified; the matcher simply cannot do it by size.
|
||||||
|
* **the focus ring** — drawn at 64.0 × 61.2 against `ptbtneff01`/`02`'s 42 × 46.
|
||||||
|
It spins and scales, so its AABB is not its sprite size. Alpha-over on both
|
||||||
|
screens.
|
||||||
|
* **the three full-screen 1280 × 720 alpha-over draws** — `ptbase`, `pteff05`,
|
||||||
|
`pteff02.prm` and `pteff00.prm` all declare 1280 × 720, so size cannot separate
|
||||||
|
them. Two of the three carry a bound texture and one does not, which narrows it
|
||||||
|
and does not close it. All four candidates are alpha-over, so nothing turns on
|
||||||
|
it — but the label the tool prints on those rows is **a candidate, not an
|
||||||
|
identification**.
|
||||||
|
|||||||
@@ -45,32 +45,49 @@ def blend_name(raw):
|
|||||||
return "%s+%s" % (FACTOR.get(src, src), FACTOR.get(dst, dst))
|
return "%s+%s" % (FACTOR.get(src, src), FACTOR.get(dst, dst))
|
||||||
|
|
||||||
|
|
||||||
def sprite_sizes(builds):
|
def candidates(builds):
|
||||||
"""name -> (w, h), straight off the disc via the formats crate.
|
"""Every size a UI draw could legitimately have, with a label and a basis.
|
||||||
|
|
||||||
`builds` is a list because the live title is TWO builds composited -- 4 draws
|
Two bases, because neither alone names every element:
|
||||||
the art and 2 draws the `PRESS (A)` plate over it -- so a capture of the
|
|
||||||
title contains elements from both and a one-build size table cannot name
|
declared the declaration's `pivot * 2` scaled by the RESTING keyframe's
|
||||||
them all.
|
scale_x/scale_y. This is the only thing that names `pteff10`,
|
||||||
|
which ships as 409x144 and is drawn at 200 % x 500 % = 816x720 --
|
||||||
|
a scale-guessing matcher called it "no match" and offered a near
|
||||||
|
miss against something else instead.
|
||||||
|
texture the decoded `.t32`'s own pixel size, at 1x and 2x. Needed because
|
||||||
|
the pivot is NOT always half the texture (`ptmsg2` declares
|
||||||
|
384x38 for a 354x38 sprite) and because a button's focused `f`
|
||||||
|
variant has a texture and no declaration of its own.
|
||||||
|
|
||||||
|
`builds` is a list: the live title is TWO builds composited, 4 for the art
|
||||||
|
and 2 for the `PRESS (A)` plate.
|
||||||
"""
|
"""
|
||||||
out = subprocess.run(
|
env = {**__import__("os").environ, "SYLPHEED_DISC": "/disc"}
|
||||||
["cargo", "run", "--release", "-q", "-p", "sylpheed-formats",
|
def run(example):
|
||||||
"--example", "frame_alpha_census", "--"] + [str(b) for b in builds],
|
return subprocess.run(
|
||||||
capture_output=True, text=True, cwd="/work",
|
["cargo", "run", "--release", "-q", "-p", "sylpheed-formats",
|
||||||
env={**__import__("os").environ, "SYLPHEED_DISC": "/disc"}).stdout
|
"--example", example, "--"] + [str(b) for b in builds],
|
||||||
sizes = {}
|
capture_output=True, text=True, cwd="/work", env=env).stdout
|
||||||
for line in out.splitlines():
|
out = []
|
||||||
|
for line in run("rest_scale_of").splitlines():
|
||||||
|
m = re.match(r"(\S+\.(?:t32|prm|rat))\s+\d+,\d+\s+\d+\s+\d+\s+([\d.]+)x([\d.]+)", line)
|
||||||
|
if m:
|
||||||
|
out.append((m.group(1), "declared", float(m.group(2)), float(m.group(3))))
|
||||||
|
for line in run("frame_alpha_census").splitlines():
|
||||||
m = re.match(r"(\S+\.t32)\s+(\d+)x(\d+)", line)
|
m = re.match(r"(\S+\.t32)\s+(\d+)x(\d+)", line)
|
||||||
if m:
|
if m:
|
||||||
sizes[m.group(1)] = (int(m.group(2)), int(m.group(3)))
|
w, h = float(m.group(2)), float(m.group(3))
|
||||||
return sizes
|
out.append((m.group(1), "texture", w, h))
|
||||||
|
out.append((m.group(1), "texture@2x", w * 2, h * 2))
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
path = sys.argv[1]
|
path = sys.argv[1]
|
||||||
spec = sys.argv[sys.argv.index("--build") + 1] if "--build" in sys.argv else "5"
|
spec = sys.argv[sys.argv.index("--build") + 1] if "--build" in sys.argv else "5"
|
||||||
builds = [int(b) for b in spec.split(",")]
|
builds = [int(b) for b in spec.split(",")]
|
||||||
sizes = sprite_sizes(builds)
|
cands = candidates(builds)
|
||||||
lines = open(path).read().splitlines()
|
lines = open(path).read().splitlines()
|
||||||
rows = []
|
rows = []
|
||||||
for i, line in enumerate(lines):
|
for i, line in enumerate(lines):
|
||||||
@@ -95,19 +112,17 @@ def main():
|
|||||||
w = (max(xs) - min(xs)) / 2 * W
|
w = (max(xs) - min(xs)) / 2 * W
|
||||||
h = (max(ys) - min(ys)) / 2 * H
|
h = (max(ys) - min(ys)) / 2 * H
|
||||||
heights.append(h)
|
heights.append(h)
|
||||||
# A sprite is drawn at its native size or at 2x: the screen is
|
# The log prints NDC to TWO DECIMALS, so a width is quantised to
|
||||||
# 1280x720 and the design space is 640x360, so `ptbase` (640x360)
|
# 0.01 * 1280 / 2 = 6.4 px and a height to 3.6 px. The tolerance
|
||||||
# covers the screen while `pteff05` (1280x720) is 1:1. Both are
|
# below is that quantisation, not a fudge factor: a match inside it
|
||||||
# tried and the scale is reported, because guessing one would
|
# is as close as this instrument can report.
|
||||||
# silently mis-name half the draws.
|
best, bd, bb = "-", 1e9, ""
|
||||||
best, bd, bs = "-", 1e9, 1
|
for n, basis, sw, sh in cands:
|
||||||
for n, (sw, sh) in sizes.items():
|
d = abs(sw - w) / 6.4 + abs(sh - h) / 3.6
|
||||||
for sc in (1, 2):
|
if d < bd:
|
||||||
d = abs(sw * sc - w) + abs(sh * sc - h)
|
best, bd, bb = n, d, basis
|
||||||
if d < bd:
|
tag = ("%s [%s]" % (best, bb)) if bd <= 2.0 else \
|
||||||
best, bd, bs = n, d, sc
|
"(no match, nearest %s [%s] off %.1f quanta)" % (best, bb, bd)
|
||||||
tag = ("%s @%dx" % (best, bs)) if bd <= 8 else \
|
|
||||||
"(no match, nearest %s @%dx off %.0f)" % (best, bs, bd)
|
|
||||||
print("%4d %4d %4d 0x%08X %-20s %7.1f x %7.1f %s"
|
print("%4d %4d %4d 0x%08X %-20s %7.1f x %7.1f %s"
|
||||||
% (idx, prim, nidx, raw, blend_name(raw), w, h, tag))
|
% (idx, prim, nidx, raw, blend_name(raw), w, h, tag))
|
||||||
tall = sorted(h for h in heights if h > 900)
|
tall = sorted(h for h in heights if h > 900)
|
||||||
|
|||||||
Reference in New Issue
Block a user