mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 02:11:36 -04:00
a8a75cd353
A textured quad whose four packet vertices form an axis-aligned rectangle in integer screen space and in UV takes the 2D rectangle shortcut (gr_draw_textured_rect), which draws the native integer position with no perspective. That is right for a CPU-built sprite, but a GTE-projected world quad can land on such a rectangle too: a facade seen straight on. Its neighbours are drawn precise, so at a high internal resolution the shortcut left a background-coloured seam along the shared edges. On R4's Helter Skelter start straight it showed as an L-shaped sky line along a building panel at 4K, with tolerance off, both with and without preserve projection. When geometry or texture correction is on and any of the quad's vertices resolves to a dataflow-precise position (pgxp_probe_precise_vertex: the same decision as pgxp_get_precise_vertex, not counted), the quad is drawn as its two triangles like any other world quad. A CPU-built sprite has no dataflow shadow and keeps the shortcut. With PGXP off nothing changes. geom_correction counts the bypassed quads (rect_bypass). Tests: gpu_textured_dot_nw_shift_exec_test gains the quad case (PGXP off, on without a precise vertex, on with one); pgxp_test checks that the probe does not count; gpu_gp0_history_guard_test's gpu.c stubs gain the two new pgxp entry points. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>