port(EterLib): GrpMath/GrpColor/GrpColorInstance verbatim

port.grp_math pins the 40250 conventions: D3DXVec3Rotation applies the
inverse rotation, GetRotationFromMatrix returns negated Z*X*Y angles, and
CGraphicColor defaults to opaque white.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-30 12:59:44 +09:00
co-authored by Claude Opus 5.5
parent 042bddf195
commit c7bcb9bbbe
9 changed files with 565 additions and 78 deletions
+3
View File
@@ -611,3 +611,6 @@
{"date": "2026-09-30", "unit": "EterLib/Thread.cpp", "action": "all PORTED verbatim over new Win32Crt _beginthreadex shim", "evidence": "port.file_loader_thread"}
{"date": "2026-09-30", "unit": "EterLib/FileLoaderThread.cpp", "action": "all PORTED verbatim over new Win32Crt semaphore/thread/WaitForSingleObject/CloseHandle shims", "evidence": "port.file_loader_thread"}
{"date": "2026-09-30", "unit": "EterLib/GrpVertexBufferDynamic.cpp", "action": "all PORTED verbatim (no 40250 instantiation)", "evidence": "build"}
{"date": "2026-09-30", "unit": "EterLib/GrpMath.cpp", "action": "all PORTED verbatim", "evidence": "port.grp_math"}
{"date": "2026-09-30", "unit": "EterLib/GrpColor.cpp", "action": "all PORTED verbatim", "evidence": "port.grp_math"}
{"date": "2026-09-30", "unit": "EterLib/GrpColorInstance.cpp", "action": "all PORTED verbatim", "evidence": "port.grp_math"}
+68
View File
@@ -0,0 +1,68 @@
{
"reference": "EterLib/GrpColor.cpp",
"reference_sha256": "592a3c1fe8f495cdedb3d5a68e084495b5f9ce1a649296b64fd024c2ee6c47bd",
"priority": "P4",
"contracts": [],
"functions": {
"CGraphicColor::CGraphicColor": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColor.cpp:CGraphicColor::CGraphicColor"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller outside GrpColorInstance)."
},
"CGraphicColor::~CGraphicColor": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColor.cpp:CGraphicColor::~CGraphicColor"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller outside GrpColorInstance)."
},
"CGraphicColor::Clear": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColor.cpp:CGraphicColor::Clear"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller outside GrpColorInstance)."
},
"CGraphicColor::Set": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColor.cpp:CGraphicColor::Set"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller outside GrpColorInstance)."
},
"CGraphicColor::Blend": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColor.cpp:CGraphicColor::Blend"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller outside GrpColorInstance)."
},
"CGraphicColor::GetPackValue": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColor.cpp:CGraphicColor::GetPackValue"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller outside GrpColorInstance)."
}
}
}
@@ -0,0 +1,88 @@
{
"reference": "EterLib/GrpColorInstance.cpp",
"reference_sha256": "b9582ea06d7178d487e20e541d68b25ebd46ef56e5d6795fb12d81f2a4f7ff56",
"priority": "P4",
"contracts": [],
"functions": {
"CGraphicColorInstance::CGraphicColorInstance": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColorInstance.cpp:CGraphicColorInstance::CGraphicColorInstance"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller)."
},
"CGraphicColorInstance::~CGraphicColorInstance": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColorInstance.cpp:CGraphicColorInstance::~CGraphicColorInstance"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller)."
},
"CGraphicColorInstance::Clear": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColorInstance.cpp:CGraphicColorInstance::Clear"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller)."
},
"CGraphicColorInstance::SetColorReference": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColorInstance.cpp:CGraphicColorInstance::SetColorReference"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller)."
},
"CGraphicColorInstance::BlendColorReference": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColorInstance.cpp:CGraphicColorInstance::BlendColorReference"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller)."
},
"CGraphicColorInstance::Update": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColorInstance.cpp:CGraphicColorInstance::Update"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller)."
},
"CGraphicColorInstance::GetCurrentTime": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColorInstance.cpp:CGraphicColorInstance::GetCurrentTime"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller)."
},
"CGraphicColorInstance::GetCurrentColorReference": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpColorInstance.cpp:CGraphicColorInstance::GetCurrentColorReference"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (no 40250 caller)."
}
}
}
+68
View File
@@ -0,0 +1,68 @@
{
"reference": "EterLib/GrpMath.cpp",
"reference_sha256": "bc15adf13da6227f7c768e1ddb82d2fcd25c16a863a433704bc66ea0fc654f07",
"priority": "P4",
"contracts": [],
"functions": {
"CrossProduct2D": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpMath.cpp:CrossProduct2D"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (IsInTriangle2D: AttributeInstance collision; the rotation helpers have no 40250 caller)."
},
"IsInTriangle2D": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpMath.cpp:IsInTriangle2D"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (IsInTriangle2D: AttributeInstance collision; the rotation helpers have no 40250 caller)."
},
"D3DXVec3Rotation": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpMath.cpp:D3DXVec3Rotation"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (IsInTriangle2D: AttributeInstance collision; the rotation helpers have no 40250 caller)."
},
"GetRotationFromMatrix": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpMath.cpp:GetRotationFromMatrix"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (IsInTriangle2D: AttributeInstance collision; the rotation helpers have no 40250 caller)."
},
"GetPivotAndRotationFromMatrix": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpMath.cpp:GetPivotAndRotationFromMatrix"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (IsInTriangle2D: AttributeInstance collision; the rotation helpers have no 40250 caller)."
},
"ExtractMovement": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/GrpMath.cpp:ExtractMovement"
],
"test": [
"tests/port/port_grp_math_test.cpp"
],
"note": "Verbatim 40250 (IsInTriangle2D: AttributeInstance collision; the rotation helpers have no 40250 caller)."
}
}
}