port(EterLib): TextBar/DibBar/BlockTexture for uiTip TipBoard/BigBoard

TextBar and DibBar verbatim over the FreeType GDI shim (+GetTextExtentPoint32A);
BlockTexture verbatim except Render, which records the clipped quad as a UI
image of the device CPU texture (UIRenderAddImageNamed). Notices now render;
port.text_bar covers block split, pixels, colour, ClearBar and TipBoard clip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-30 13:07:24 +09:00
co-authored by Claude Opus 5.5
parent c7bcb9bbbe
commit 6d2d262de8
14 changed files with 900 additions and 87 deletions
@@ -0,0 +1,68 @@
{
"reference": "EterLib/BlockTexture.cpp",
"reference_sha256": "791df4fed556b4aad015ede57d85763393fefd48cc505584198865f84c7a1b99",
"priority": "P4",
"contracts": [],
"functions": {
"CBlockTexture::SetClipRect": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/BlockTexture.cpp:CBlockTexture::SetClipRect"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (CreateTexture/LockRect on the recording device's CPU texture)."
},
"CBlockTexture::Render": {
"status": "ADAPTED",
"impl": [
"src/platform/EterLib/BlockTexture.cpp:CBlockTexture::Render"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "40250: SetPDTStream + DEFAULT_IB_FILL_RECT + stage-0 m_lpd3dTexture + DrawIndexedPrimitive in the UI pass. Port: the same clipped corners/UVs recorded as a UI image of the device CPU texture (UIRenderAddImageNamed). Invariant: identical quad, UVs and texels; clipped-out blocks draw nothing."
},
"CBlockTexture::InvalidateRect": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/BlockTexture.cpp:CBlockTexture::InvalidateRect"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (CreateTexture/LockRect on the recording device's CPU texture)."
},
"CBlockTexture::Create": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/BlockTexture.cpp:CBlockTexture::Create"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (CreateTexture/LockRect on the recording device's CPU texture)."
},
"CBlockTexture::CBlockTexture": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/BlockTexture.cpp:CBlockTexture::CBlockTexture"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (CreateTexture/LockRect on the recording device's CPU texture)."
},
"CBlockTexture::~CBlockTexture": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/BlockTexture.cpp:CBlockTexture::~CBlockTexture"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (CreateTexture/LockRect on the recording device's CPU texture)."
}
}
}
+118
View File
@@ -0,0 +1,118 @@
{
"reference": "EterLib/DibBar.cpp",
"reference_sha256": "5523feed6b35f7e13d1af6fb3e517db52a2ba88a5b8887a2bf5a35bbff91aec2",
"priority": "P4",
"contracts": [],
"functions": {
"CDibBar::Invalidate": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/DibBar.cpp:CDibBar::Invalidate"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (RECT initialisers cast to the 32-bit LONG)."
},
"CDibBar::SetClipRect": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/DibBar.cpp:CDibBar::SetClipRect"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (RECT initialisers cast to the 32-bit LONG)."
},
"CDibBar::ClearBar": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/DibBar.cpp:CDibBar::ClearBar"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (RECT initialisers cast to the 32-bit LONG)."
},
"CDibBar::Render": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/DibBar.cpp:CDibBar::Render"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (RECT initialisers cast to the 32-bit LONG)."
},
"CDibBar::__NearTextureSize": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/DibBar.cpp:CDibBar::__NearTextureSize"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (RECT initialisers cast to the 32-bit LONG)."
},
"CDibBar::__DivideTextureSize": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/DibBar.cpp:CDibBar::__DivideTextureSize"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (RECT initialisers cast to the 32-bit LONG)."
},
"CDibBar::__BuildTextureBlock": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/DibBar.cpp:CDibBar::__BuildTextureBlock"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (RECT initialisers cast to the 32-bit LONG)."
},
"CDibBar::__BuildTextureBlockList": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/DibBar.cpp:CDibBar::__BuildTextureBlockList"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (RECT initialisers cast to the 32-bit LONG)."
},
"CDibBar::Create": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/DibBar.cpp:CDibBar::Create"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (RECT initialisers cast to the 32-bit LONG)."
},
"CDibBar::CDibBar": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/DibBar.cpp:CDibBar::CDibBar"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (RECT initialisers cast to the 32-bit LONG)."
},
"CDibBar::~CDibBar": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/DibBar.cpp:CDibBar::~CDibBar"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 (RECT initialisers cast to the 32-bit LONG)."
}
}
}
+78
View File
@@ -0,0 +1,78 @@
{
"reference": "EterLib/TextBar.cpp",
"reference_sha256": "f9f6d12d01e94d76150cb3b50617c10bdf22fcd1c9075ab4d6f40e0b429f7de3",
"priority": "P4",
"contracts": [],
"functions": {
"CTextBar::__SetFont": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/TextBar.cpp:CTextBar::__SetFont"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 over the Win32Gdi FreeType GDI shim (CreateFontIndirect/SelectObject/SetTextColor/GetTextExtentPoint32A). Live: uiTip.TipBoard/BigBoard via grp.CreateTextBar/CreateBigTextBar."
},
"CTextBar::SetTextColor": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/TextBar.cpp:CTextBar::SetTextColor"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 over the Win32Gdi FreeType GDI shim (CreateFontIndirect/SelectObject/SetTextColor/GetTextExtentPoint32A). Live: uiTip.TipBoard/BigBoard via grp.CreateTextBar/CreateBigTextBar."
},
"CTextBar::GetTextExtent": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/TextBar.cpp:CTextBar::GetTextExtent"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 over the Win32Gdi FreeType GDI shim (CreateFontIndirect/SelectObject/SetTextColor/GetTextExtentPoint32A). Live: uiTip.TipBoard/BigBoard via grp.CreateTextBar/CreateBigTextBar."
},
"CTextBar::TextOut": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/TextBar.cpp:CTextBar::TextOut"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 over the Win32Gdi FreeType GDI shim (CreateFontIndirect/SelectObject/SetTextColor/GetTextExtentPoint32A). Live: uiTip.TipBoard/BigBoard via grp.CreateTextBar/CreateBigTextBar."
},
"CTextBar::OnCreate": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/TextBar.cpp:CTextBar::OnCreate"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 over the Win32Gdi FreeType GDI shim (CreateFontIndirect/SelectObject/SetTextColor/GetTextExtentPoint32A). Live: uiTip.TipBoard/BigBoard via grp.CreateTextBar/CreateBigTextBar."
},
"CTextBar::CTextBar": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/TextBar.cpp:CTextBar::CTextBar"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 over the Win32Gdi FreeType GDI shim (CreateFontIndirect/SelectObject/SetTextColor/GetTextExtentPoint32A). Live: uiTip.TipBoard/BigBoard via grp.CreateTextBar/CreateBigTextBar."
},
"CTextBar::~CTextBar": {
"status": "PORTED",
"impl": [
"src/platform/EterLib/TextBar.cpp:CTextBar::~CTextBar"
],
"test": [
"tests/port/port_text_bar_test.cpp"
],
"note": "Verbatim 40250 over the Win32Gdi FreeType GDI shim (CreateFontIndirect/SelectObject/SetTextColor/GetTextExtentPoint32A). Live: uiTip.TipBoard/BigBoard via grp.CreateTextBar/CreateBigTextBar."
}
}
}