port EterLib/GrpShadowTexture verbatim; D3D top-left fill rule for the shadow target (unit C/D)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-28 13:05:55 +09:00
co-authored by Claude Opus 5.5
parent 5be37b6363
commit 86e602cb32
6 changed files with 281 additions and 62 deletions
@@ -33,7 +33,7 @@
"impl": [
"extension/src/platform/GameLib/MapOutdoorCharacterShadow.cpp:CMapOutdoor::BeginRenderCharacterShadowToTexture"
],
"note": "Restores 40250 light view, target, viewport and render states; the small R5G6B5 target is rasterized on CPU. Native fake-server capture contains nonwhite shadow pixels; matched Windows screenshot parity remains open."
"note": "Restores 40250 light view, target, viewport and render states; the small R5G6B5 target is rasterized on CPU. Native fake-server capture contains nonwhite shadow pixels; matched Windows screenshot parity remains open. The pass is SELECTARG1 TFACTOR with ALPHAOP DISABLE into a white-cleared R5G6B5 target, so the CPU rasterizer is output-equivalent to a GPU target; it now follows the D3D top-left fill rule. The only other offscreen target in 40250 (CSnowEnvironment blur) is hard-disabled (m_bBlurEnable = FALSE), so no Vulkan offscreen path is needed."
},
"CMapOutdoor::EndRenderCharacterShadowToTexture": {
"status": "NEEDS_LIVE",