port: Grp texture/image/buffer units toward 40250 (+ port.grp_resource)
GrpImage/GrpSubImage verbatim; GrpImageTexture DDS path through CDXTCImage header + low-texture-memory mip bias, CreateDeviceObjects/CreateFromDiskFile verbatim; GrpTexture::SetTextureStage via STATEMANAGER. Port-map entries for GrpTexture/Image/SubImage/ImageTexture/IndexBuffer/VertexBuffer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
7e385f827b
commit
010e99f070
@@ -625,3 +625,9 @@
|
||||
{"date": "2026-09-30", "unit": "EterImageLib/Image.cpp", "action": "port", "evidence": "verbatim; port.eter_image"}
|
||||
{"date": "2026-09-30", "unit": "EterImageLib/TGAImage.cpp", "action": "port", "evidence": "verbatim; raw save/load flips (desc 0x08), RLE load; port.eter_image"}
|
||||
{"date": "2026-09-30", "unit": "EterImageLib/DXTCImage.cpp", "action": "port", "evidence": "verbatim + DWORD_PTR casts + <d3d.h> ddraw shim; -fno-strict-aliasing for MSVC type punning; port.eter_image"}
|
||||
{"date": "2026-09-30", "unit": "EterLib/GrpTexture.cpp", "action": "port", "evidence": "verbatim except the handle release; SetTextureStage now binds through STATEMANAGER (SnowEnvironment); port.grp_resource"}
|
||||
{"date": "2026-09-30", "unit": "EterLib/GrpImage.cpp", "action": "port", "evidence": "verbatim; port.grp_resource"}
|
||||
{"date": "2026-09-30", "unit": "EterLib/GrpSubImage.cpp", "action": "port", "evidence": "verbatim (resource names use '\\\\', so the 2.0 path split matches); port.grp_resource"}
|
||||
{"date": "2026-09-30", "unit": "EterLib/GrpImageTexture.cpp", "action": "port", "evidence": "40250 flow: pack reload in CreateDeviceObjects, CDXTCImage header check + CreateDDSTexture size/mip bias, CreateFromDiskFile; handles stay platform textures; port.grp_resource"}
|
||||
{"date": "2026-09-30", "unit": "EterLib/GrpIndexBuffer.cpp", "action": "port", "evidence": "CPU buffers, bodies otherwise 40250; port.grp_resource"}
|
||||
{"date": "2026-09-30", "unit": "EterLib/GrpVertexBuffer.cpp", "action": "port", "evidence": "CPU buffers, bodies otherwise 40250; port.grp_resource"}
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"reference": "EterLib/GrpImage.cpp",
|
||||
"reference_sha256": "1966e1d5eaf45ad2391a1e71e42e3c7c30408aed246a1dc79be428396382837d",
|
||||
"priority": "P4",
|
||||
"contracts": [],
|
||||
"functions": {
|
||||
"CGraphicImage::CGraphicImage": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::CGraphicImage"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::~CGraphicImage": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::~CGraphicImage"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::CreateDeviceObjects": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::CreateDeviceObjects"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::DestroyDeviceObjects": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::DestroyDeviceObjects"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::Type": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::Type"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::OnIsType": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::OnIsType"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::GetWidth": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::GetWidth"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::GetHeight": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::GetHeight"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::GetTextureReference": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::GetTextureReference"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::GetTexturePointer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::GetTexturePointer"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::GetRectReference": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::GetRectReference"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::OnLoad": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::OnLoad"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::OnClear": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::OnClear"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImage::OnIsEmpty": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImage.cpp:CGraphicImage::OnIsEmpty"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,56 +5,127 @@
|
||||
"contracts": [],
|
||||
"functions": {
|
||||
"CGraphicImageTexture::Lock": {
|
||||
"status": "TODO"
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: LockRect on the D3D texture. Port: the memory texture's native bytes in its own format, pitch = width*bpp. Invariant: the font pages write the same A4R4G4B4 words.",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::Lock"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImageTexture::Unlock": {
|
||||
"status": "TODO"
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: UnlockRect. Port: converts the native pixels to ARGB32 and bumps the revision in the handle name. Invariant: the canvas sees the written pixels after Unlock.",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::Unlock"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImageTexture::Initialize": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::Initialize"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImageTexture::Destroy": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::Destroy"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImageTexture::CreateDeviceObjects": {
|
||||
"status": "TODO"
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: CreateTexture (font) / pack Get + CreateFromMemoryFile. Port: the empty-name branch makes a memory texture; the file branch is verbatim. Invariant: same success/failure and size.",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::CreateDeviceObjects"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImageTexture::Create": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::Create"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImageTexture::CreateFromTexturePointer": {
|
||||
"status": "TODO"
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: shares the source D3D texture with AddRef. Port: handles are not reference counted, so the copy gets its own handle naming the source's pack path. Invariant: the sub image draws the source file with the source size.",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::CreateFromTexturePointer"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImageTexture::CreateDDSTexture": {
|
||||
"status": "ADAPTED",
|
||||
"impl": [
|
||||
"src/host/dxt.cpp:decode",
|
||||
"src/host/vk_textures.cpp:get_gpu_texture",
|
||||
"src/host/vk_textures.cpp:upload_texture"
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::CreateDDSTexture"
|
||||
],
|
||||
"test": "tests/port/dxt_decode_test.cpp",
|
||||
"note": "The platform CreateDDSTexture member is a stub; its level logic lives in the texture decode/upload the renderer does. mipmapCount = max(1, min(dwMipMapCount, MAX_MIPLEVELS=12)), level i read at sum(dwLinearSize>>2k) with CDXTCImage::Copy's dwLinearSize>>2i bytes (the rest zero, uninitialised in 40250), decoded to RGBA8 (no GPU DXT) and uploaded as file levels, not regenerated. Divergence: without DDSD_MIPMAPCOUNT, or with DDSD_PITCH, 40250 creates the extra levels uninitialised; here that is one level. IsLowTextureMemory's uTexBias level skip is not applied (the port's ms_isLowTextureMemory is false). The far-terrain look NEEDS_LIVE."
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
],
|
||||
"note": "40250: D3DXCreateTexture + per-level LockRect/Copy (and an A4R4G4B4/A1R5G5B5 copy without DXT support). Port: a file handle; the renderers decode the .dds. Invariant: the size, including the low-texture-memory top-mip skip, is 40250's."
|
||||
},
|
||||
"CGraphicImageTexture::CreateFromMemoryFile": {
|
||||
"status": "ADAPTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::CreateFromMemoryFile",
|
||||
"src/host/vk_textures.cpp:get_gpu_texture"
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::CreateFromMemoryFile"
|
||||
],
|
||||
"test": "tests/port/dxt_decode_test.cpp",
|
||||
"note": "The platform body records only the size and file name; the renderer decodes the bytes. 40250 dispatch is kept: a DXT DDS takes the CreateDDSTexture levels, anything else takes D3DXCreateTextureFromFileInMemoryEx(MipLevels=D3DX_DEFAULT), i.e. a full generated chain (vkCmdBlitImage linear, instead of D3DX's box filter). The invented is_ui_tex rule (no mips for icon/, ui/, locale/ and textures <=128px) was removed. Memory textures (mem:, 40250 CreateTexture levels=1) get one level. GRAPHICS_CAPS_HALF_SIZE_IMAGE/low-memory A4R4G4B4 re-encode is not applied."
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
],
|
||||
"note": "40250: LoadHeaderFromMemory → CreateDDSTexture, else D3DXCreateTextureFromFileInMemoryEx. Port: same DDS check (only when the buffer holds 128 bytes), else the size is read from the DDS/PNG/JPEG/BMP/TGA header and the canvas decodes. Invariant: same width/height and failure on undecodable bytes."
|
||||
},
|
||||
"CGraphicImageTexture::SetFileName": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::SetFileName"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImageTexture::CreateFromDiskFile": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::CreateFromDiskFile"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImageTexture::CGraphicImageTexture": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::CGraphicImageTexture"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicImageTexture::~CGraphicImageTexture": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpImageTexture.cpp:CGraphicImageTexture::~CGraphicImageTexture"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
{
|
||||
"reference": "EterLib/GrpIndexBuffer.cpp",
|
||||
"reference_sha256": "ef734b7d12aa0da8881bdb55d9356f932bbfe528c445504c81c816ba004201af",
|
||||
"priority": "P4",
|
||||
"contracts": [],
|
||||
"functions": {
|
||||
"CGraphicIndexBuffer::GetD3DIndexBuffer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::GetD3DIndexBuffer"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicIndexBuffer::SetIndices": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 index buffer Lock/Unlock/CreateIndexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::SetIndices"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicIndexBuffer::Lock": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 index buffer Lock/Unlock/CreateIndexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::Lock"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicIndexBuffer::Unlock": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 index buffer Lock/Unlock/CreateIndexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::Unlock"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicIndexBuffer::Copy": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 index buffer Lock/Unlock/CreateIndexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::Copy"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicIndexBuffer::Create": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::Create"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicIndexBuffer::CreateDeviceObjects": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 index buffer Lock/Unlock/CreateIndexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::CreateDeviceObjects"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicIndexBuffer::DestroyDeviceObjects": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 index buffer Lock/Unlock/CreateIndexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::DestroyDeviceObjects"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicIndexBuffer::Destroy": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::Destroy"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicIndexBuffer::Initialize": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: leaves m_iidxCount/m_dwBufferSize unset. Port: zeroes them. Invariant: every 40250 reader runs after Create, which sets both.",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::Initialize"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicIndexBuffer::CGraphicIndexBuffer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::CGraphicIndexBuffer"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicIndexBuffer::~CGraphicIndexBuffer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpIndexBuffer.cpp:CGraphicIndexBuffer::~CGraphicIndexBuffer"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"reference": "EterLib/GrpSubImage.cpp",
|
||||
"reference_sha256": "b0fd32d1c7cd5b11d932acfda8caaa44db8cb222ba68d834950db5f15870103b",
|
||||
"priority": "P4",
|
||||
"contracts": [],
|
||||
"functions": {
|
||||
"CGraphicSubImage::Type": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::Type"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::CGraphicSubImage": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::CGraphicSubImage"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::~CGraphicSubImage": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::~CGraphicSubImage"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::CreateDeviceObjects": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::CreateDeviceObjects"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::SetImagePointer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::SetImagePointer"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::SetImageFileName": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::SetImageFileName"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::SetRectPosition": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::SetRectPosition"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::SetRectReference": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::SetRectReference"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::SetSearchPath": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::SetSearchPath"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::OnLoad": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::OnLoad"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::OnClear": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::OnClear"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::OnIsEmpty": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::OnIsEmpty"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
},
|
||||
"CGraphicSubImage::OnIsType": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpSubImage.cpp:CGraphicSubImage::OnIsType"
|
||||
],
|
||||
"test": [
|
||||
"build/native/src/host/mt_native_render --live-client (UI sub images)"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"reference": "EterLib/GrpTexture.cpp",
|
||||
"reference_sha256": "82f803e743bc476e87eaff32919cc9d8e77bf09cf5aff90b093f3e041f42a8d2",
|
||||
"priority": "P4",
|
||||
"contracts": [],
|
||||
"functions": {
|
||||
"CGraphicTexture::DestroyDeviceObjects": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: safe_release(m_lpd3dTexture). Port: UIRenderReleaseMemoryTexture frees the platform handle. Invariant: the handle is gone and m_lpd3dTexture is NULL.",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpTexture.cpp:CGraphicTexture::DestroyDeviceObjects"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicTexture::Destroy": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpTexture.cpp:CGraphicTexture::Destroy"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicTexture::Initialize": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpTexture.cpp:CGraphicTexture::Initialize"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicTexture::IsEmpty": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpTexture.cpp:CGraphicTexture::IsEmpty"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicTexture::SetTextureStage": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpTexture.cpp:CGraphicTexture::SetTextureStage"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicTexture::GetD3DTexture": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpTexture.cpp:CGraphicTexture::GetD3DTexture"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicTexture::GetWidth": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpTexture.cpp:CGraphicTexture::GetWidth"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicTexture::GetHeight": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpTexture.cpp:CGraphicTexture::GetHeight"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicTexture::CGraphicTexture": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpTexture.cpp:CGraphicTexture::CGraphicTexture"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicTexture::~CGraphicTexture": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpTexture.cpp:CGraphicTexture::~CGraphicTexture"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
{
|
||||
"reference": "EterLib/GrpVertexBuffer.cpp",
|
||||
"reference_sha256": "0c6f3f6331b7e837f4a38f4b4a9993a158081dcd80d7f4f8a84f947a4fbe49fd",
|
||||
"priority": "P4",
|
||||
"contracts": [],
|
||||
"functions": {
|
||||
"CGraphicVertexBuffer::GetVertexStride": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3DXGetFVFVertexSize. Port: mt_fvf_vertex_size, the same D3D8 FVF size rule. Invariant: equal stride for every FVF.",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::GetVertexStride"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::GetFlexibleVertexFormat": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::GetFlexibleVertexFormat"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::GetVertexCount": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::GetVertexCount"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::SetStream": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: assert(ms_lpd3dDevice) + STATEMANAGER.SetStreamSource. Port: without the assert (CPU buffers exist without a device). Invariant: same stream binding.",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::SetStream"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::LockRange": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 vertex buffer Lock/Unlock/CreateVertexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::LockRange"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::Lock": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 vertex buffer Lock/Unlock/CreateVertexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::Lock"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::Unlock": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 vertex buffer Lock/Unlock/CreateVertexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::Unlock"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::IsEmpty": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::IsEmpty"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::LockDynamic": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 vertex buffer Lock/Unlock/CreateVertexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::LockDynamic"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::Copy": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::Copy"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::CreateDeviceObjects": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 vertex buffer Lock/Unlock/CreateVertexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::CreateDeviceObjects"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::DestroyDeviceObjects": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3D8 vertex buffer Lock/Unlock/CreateVertexBuffer/Release. Port: CPU memory (CpuBuffer.h MtCpu*Buffer); Lock hands out the bytes, Unlock bumps the revision the renderer re-uploads on. Invariant: the same bytes and sizes reach the draw; no device needed (Granny loader thread).",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::DestroyDeviceObjects"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::Create": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: D3DXGetFVFVertexSize(fvf)*count, assert(device). Port: mt_fvf_vertex_size, no device assert (CPU buffers). Invariant: same buffer size.",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::Create"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::Destroy": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::Destroy"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::Initialize": {
|
||||
"status": "ADAPTED",
|
||||
"note": "40250: leaves m_dwFVF unset. Port: zeroes it. Invariant: every 40250 reader runs after Create, which sets it.",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::Initialize"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::CGraphicVertexBuffer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::CGraphicVertexBuffer"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
},
|
||||
"CGraphicVertexBuffer::~CGraphicVertexBuffer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"src/platform/EterLib/GrpVertexBuffer.cpp:CGraphicVertexBuffer::~CGraphicVertexBuffer"
|
||||
],
|
||||
"test": [
|
||||
"tests/port/port_grp_resource_test.cpp"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user