audit: GrpTextInstance port-map (verbatim, Render draws via UI commands)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
6f32387567
commit
cfae658b6a
@@ -634,3 +634,4 @@
|
|||||||
{"date": "2026-09-30", "unit": "EterLib/GrpImageInstance.cpp", "action": "port", "evidence": "verbatim; draw via UIRenderAddImage; port.grp_resource quad/uv/colour"}
|
{"date": "2026-09-30", "unit": "EterLib/GrpImageInstance.cpp", "action": "port", "evidence": "verbatim; draw via UIRenderAddImage; port.grp_resource quad/uv/colour"}
|
||||||
{"date": "2026-09-30", "unit": "EterLib/GrpExpandedImageInstance.cpp", "action": "port", "evidence": "verbatim; draw + blend mode via UIRenderAddImage, SCREEN/COLOR_DODGE blend fixed to INVDESTCOLOR (0x2A); OnIsType recursion avoided; port.grp_resource"}
|
{"date": "2026-09-30", "unit": "EterLib/GrpExpandedImageInstance.cpp", "action": "port", "evidence": "verbatim; draw + blend mode via UIRenderAddImage, SCREEN/COLOR_DODGE blend fixed to INVDESTCOLOR (0x2A); OnIsType recursion avoided; port.grp_resource"}
|
||||||
{"date": "2026-09-30", "unit": "EterLib/GrpFontTexture.cpp", "action": "port", "evidence": "40250 bodies over Win32Gdi; HiDPI oversample adaptations noted; port.text"}
|
{"date": "2026-09-30", "unit": "EterLib/GrpFontTexture.cpp", "action": "port", "evidence": "40250 bodies over Win32Gdi; HiDPI oversample adaptations noted; port.text"}
|
||||||
|
{"date": "2026-09-30", "unit": "EterLib/GrpTextInstance.cpp", "action": "port", "evidence": "verbatim except Render draw calls -> UIRender commands; port.text, port.app_loop"}
|
||||||
|
|||||||
@@ -0,0 +1,419 @@
|
|||||||
|
{
|
||||||
|
"reference": "EterLib/GrpTextInstance.cpp",
|
||||||
|
"reference_sha256": "e6b66bc43e678e02dae1625facec67a67d6e245f4aa0d5adf9f9d570272e98d8",
|
||||||
|
"priority": "P4",
|
||||||
|
"contracts": [],
|
||||||
|
"functions": {
|
||||||
|
"CGraphicTextInstance::Hyperlink_UpdateMousePos": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::Hyperlink_UpdateMousePos"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::Hyperlink_GetText": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::Hyperlink_GetText"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::__DrawCharacter": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::__DrawCharacter"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::__GetTextPos": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::__GetTextPos"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"isNumberic": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:isNumberic"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"IsValidToken": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:IsValidToken"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"FindToken": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:FindToken"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ReadToken": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:ReadToken"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::Update": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::Update"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::Render": {
|
||||||
|
"status": "ADAPTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::Render"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
],
|
||||||
|
"note": "40250: saves SRCALPHA/INVSRCALPHA blend, disables fog/lighting, texture*diffuse modulate, draws each glyph as a PDT triangle strip and the cursor/IME underline as FILL_RECT quads. Port: the verbatim layout loop emits one UIRenderAddImage per glyph (page texture, same corners/UVs/colour) and a Bar per fill quad; the UI pipeline is alpha-blended with texture*vertex colour. Invariant: same glyph quads, order and colours."
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::CreateSystem": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::CreateSystem"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::DestroySystem": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::DestroySystem"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::New": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::New"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::Delete": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::Delete"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::ShowCursor": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::ShowCursor"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::HideCursor": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::HideCursor"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::ShowOutLine": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::ShowOutLine"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::HideOutLine": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::HideOutLine"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetColor": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetColor"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetOutLineColor": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetOutLineColor"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetSecret": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetSecret"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetOutline": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetOutline"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetFeather": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetFeather"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetMultiLine": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetMultiLine"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetHorizonalAlign": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetHorizonalAlign"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetVerticalAlign": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetVerticalAlign"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetMax": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetMax"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetLimitWidth": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetLimitWidth"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetValueString": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetValueString"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetValue": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetValue"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetPosition": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetPosition"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::SetTextPointer": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::SetTextPointer"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::GetValueStringReference": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::GetValueStringReference"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::GetTextLineCount": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::GetTextLineCount"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::GetTextSize": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::GetTextSize"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::PixelPositionToCharacterPosition": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::PixelPositionToCharacterPosition"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::GetHorizontalAlign": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::GetHorizontalAlign"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::__Initialize": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::__Initialize"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::Destroy": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::Destroy"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::CGraphicTextInstance": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::CGraphicTextInstance"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"CGraphicTextInstance::~CGraphicTextInstance": {
|
||||||
|
"status": "PORTED",
|
||||||
|
"impl": [
|
||||||
|
"src/platform/EterLib/GrpTextInstance.cpp:CGraphicTextInstance::~CGraphicTextInstance"
|
||||||
|
],
|
||||||
|
"test": [
|
||||||
|
"tests/port/port_text_test.cpp",
|
||||||
|
"tests/port/port_app_loop_test.cpp"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user