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>
172 lines
6.9 KiB
JSON
172 lines
6.9 KiB
JSON
{
|
|
"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"
|
|
]
|
|
}
|
|
}
|
|
}
|