port: SkyBox verbatim 40250 (native-terrain gate, qualified pure-virtual Destroy)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-30 14:31:07 +09:00
co-authored by Claude Opus 5.5
parent cfae658b6a
commit d73f5ea4bd
3 changed files with 686 additions and 153 deletions
+380
View File
@@ -0,0 +1,380 @@
{
"reference": "EterLib/SkyBox.cpp",
"reference_sha256": "b0864b9009c1a1571b3edce7e967df2a9167e8dcae2e55bd37f2c93ba647b6a4",
"priority": "P4",
"contracts": [],
"functions": {
"CSkyObjectQuad::CSkyObjectQuad": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObjectQuad::CSkyObjectQuad"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObjectQuad::~CSkyObjectQuad": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObjectQuad::~CSkyObjectQuad"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObjectQuad::Clear": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObjectQuad::Clear"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObjectQuad::SetSrcColor": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObjectQuad::SetSrcColor"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObjectQuad::SetTransition": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObjectQuad::SetTransition"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObjectQuad::SetVertex": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObjectQuad::SetVertex"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObjectQuad::StartTransition": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObjectQuad::StartTransition"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObjectQuad::Update": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObjectQuad::Update"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObjectQuad::Render": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObjectQuad::Render"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObject::CSkyObject": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObject::CSkyObject"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObject::~CSkyObject": {
"status": "ADAPTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObject::~CSkyObject"
],
"test": [
"tests/port/port_login_flow_test.cpp"
],
"note": "40250: Destroy() in the destructor; Destroy is pure virtual with a body and MSVC binds the call to CSkyObject::Destroy. Port: the call is qualified as CSkyObject::Destroy() because clang dispatches through the vtable (__cxa_pure_virtual abort on map teardown). Invariant: the same (empty) CSkyObject::Destroy body runs."
},
"CSkyObject::Destroy": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObject::Destroy"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObject::Update": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObject::Update"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObject::Render": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObject::Render"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObject::GenerateTexture": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObject::GenerateTexture"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObject::DeleteTexture": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObject::DeleteTexture"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObject::StartTransition": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObject::StartTransition"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObject::TSkyObjectFace::StartTransition": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObject::TSkyObjectFace::StartTransition"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObject::TSkyObjectFace::Update": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObject::TSkyObjectFace::Update"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyObject::TSkyObjectFace::Render": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyObject::TSkyObjectFace::Render"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::CSkyBox": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::CSkyBox"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::~CSkyBox": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::~CSkyBox"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::Destroy": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::Destroy"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetSkyBoxScale": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetSkyBoxScale"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetGradientLevel": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetGradientLevel"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetFaceTexture": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetFaceTexture"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetCloudTexture": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetCloudTexture"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetCloudScale": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetCloudScale"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetCloudHeight": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetCloudHeight"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetCloudTextureScale": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetCloudTextureScale"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetCloudScrollSpeed": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetCloudScrollSpeed"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::Unload": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::Unload"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetSkyObjectQuadVertical": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetSkyObjectQuadVertical"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetSkyObjectQuadHorizon": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetSkyObjectQuadHorizon"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::Refresh": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::Refresh"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetCloudColor": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetCloudColor"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::SetSkyColor": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::SetSkyColor"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::StartTransition": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::StartTransition"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::Update": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::Update"
],
"test": [
"tests/port/port_login_flow_test.cpp"
]
},
"CSkyBox::Render": {
"status": "ADAPTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::Render"
],
"test": [
"tests/port/port_login_flow_test.cpp"
],
"note": "40250: always draws the six faces. Port: verbatim behind the native-terrain gate (IsNativeTerrainRenderEnabled, as MapOutdoorRenderHTP.cpp); the Godot Metin2World adapter draws the sky otherwise. Invariant: same states, textures and faces on the native path."
},
"CSkyBox::RenderCloud": {
"status": "ADAPTED",
"impl": [
"src/platform/EterLib/SkyBox.cpp:CSkyBox::RenderCloud"
],
"test": [
"tests/port/port_login_flow_test.cpp"
],
"note": "40250: always draws the cloud face. Port: verbatim behind the same native-terrain gate as Render. Invariant: same states, texture transform and projection on the native path."
}
}
}