SetGamma, RenderCoolTimeBox, RenderUp/DownButton and GetAvailableMemory are transliterated from 40250 in place of stubs. The cooldown fan is emitted as untextured polygon UI commands (native_render + python_ui_surface.gd draw Bar+quad as a polygon); D3D8 shim gains SetGammaRamp/D3DGAMMARAMP. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
138 lines
4.9 KiB
JSON
138 lines
4.9 KiB
JSON
{
|
|
"reference": "EterPythonLib/PythonGraphic.cpp",
|
|
"reference_sha256": "82fc01bd616637f92fcbc17e1eb2c7dd8ab78615695dc2aaabe9e5bf2f204632",
|
|
"priority": "P4",
|
|
"contracts": [],
|
|
"functions": {
|
|
"CPythonGraphic::Destroy": {
|
|
"status": "TODO"
|
|
},
|
|
"CPythonGraphic::GetD3D": {
|
|
"status": "TODO"
|
|
},
|
|
"CPythonGraphic::GetOrthoDepth": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::GetOrthoDepth"
|
|
]
|
|
},
|
|
"CPythonGraphic::SetInterfaceRenderState": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::SetInterfaceRenderState"
|
|
]
|
|
},
|
|
"CPythonGraphic::SetGameRenderState": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::SetGameRenderState"
|
|
]
|
|
},
|
|
"CPythonGraphic::SetCursorPosition": {
|
|
"status": "ADAPTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::SetCursorPosition"
|
|
],
|
|
"test": "extension/tests/port_login_flow_test.cpp",
|
|
"note": "40250 body verbatim in the platform layer (pick ray through the cursor)."
|
|
},
|
|
"CPythonGraphic::SetOmniLight": {
|
|
"status": "TODO"
|
|
},
|
|
"CPythonGraphic::SetViewport": {
|
|
"status": "ADAPTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::SetViewport"
|
|
],
|
|
"test": "extension/tests/port_app_loop_test.cpp",
|
|
"note": "40250 device viewport set/backup kept (guarded for the device-less boot). The UI is drawn from UIRenderCommands, not the device, so the same rectangle is also pushed as the UI clip (UIRenderSetClip)."
|
|
},
|
|
"CPythonGraphic::RestoreViewport": {
|
|
"status": "ADAPTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::RestoreViewport"
|
|
],
|
|
"test": "extension/tests/port_app_loop_test.cpp",
|
|
"note": "Restores the backup viewport as 40250 does and pops the UI clip pushed by SetViewport."
|
|
},
|
|
"CPythonGraphic::SetGamma": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::SetGamma"
|
|
],
|
|
"note": "Verbatim 40250. The recording device reports no D3DCAPS2_FULLSCREENGAMMA (windowed output, where D3D8 ignores the ramp as well), so it returns at the caps check; IDirect3DDevice8::SetGammaRamp added to the D3D8 shim."
|
|
},
|
|
"GenScreenShotTag": {
|
|
"status": "TODO"
|
|
},
|
|
"CPythonGraphic::SaveJPEG": {
|
|
"status": "TODO"
|
|
},
|
|
"CPythonGraphic::SaveScreenShot": {
|
|
"status": "TODO"
|
|
},
|
|
"CPythonGraphic::PushState": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::PushState"
|
|
]
|
|
},
|
|
"CPythonGraphic::PopState": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::PopState"
|
|
]
|
|
},
|
|
"CPythonGraphic::RenderImage": {
|
|
"status": "TODO"
|
|
},
|
|
"CPythonGraphic::RenderAlphaImage": {
|
|
"status": "TODO"
|
|
},
|
|
"CPythonGraphic::RenderCoolTimeBox": {
|
|
"status": "ADAPTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::RenderCoolTimeBox"
|
|
],
|
|
"test": "extension/tests/port_app_loop_test.cpp",
|
|
"note": "Fan vertex build verbatim. 40250's D3DPT_TRIANGLEFAN (untextured, SELECTARG1 DIFFUSE colour/alpha, 0x80000000) is emitted as one untextured quad UIRenderCommand per fan triangle (centre, j, j+1, j+1); native_render and python_ui_surface.gd draw Bar+quad as a polygon. On-screen look NEEDS_LIVE against a skill cooldown."
|
|
},
|
|
"CPythonGraphic::GenerateColor": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::GenerateColor"
|
|
]
|
|
},
|
|
"CPythonGraphic::RenderDownButton": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::RenderDownButton"
|
|
]
|
|
},
|
|
"CPythonGraphic::RenderUpButton": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::RenderUpButton"
|
|
]
|
|
},
|
|
"CPythonGraphic::GetAvailableMemory": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::GetAvailableMemory"
|
|
]
|
|
},
|
|
"CPythonGraphic::CPythonGraphic": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::CPythonGraphic"
|
|
]
|
|
},
|
|
"CPythonGraphic::~CPythonGraphic": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::~CPythonGraphic"
|
|
]
|
|
}
|
|
}
|
|
}
|