port 2V2-d.2: Granny runtime on libgr2, main character model animates
Implement the Granny SDK 2.11 API the client uses on top of libgr2 (platform/EterGrnLib/GrannyRuntime.cpp, shim granny.h declared from the SDK header): file sections, type-definition vertex conversion, material textures by Usage, mesh/bone bindings, deformer, control clock/loop/ease and weighted SRT sampling. Port EterGrnLib (LODController, Material, Mesh, Model, ModelInstance*, Motion, Thing, ThingInstance, Util) plus EterLib GrpObjectInstance/GrpCollisionObject/CollisionData verbatim and drop their platform skeletons and pending stand-ins; register the gr2 resource factory; vertex/index buffers are CPU-side until the 2V2-e render adapter. app.UpdateGame/RenderGame now run 40250's bodies, reaching the CPythonApplication members through their singletons (the platform has no app object); CPythonGraphic joins GameSingletons in member order, and GetMousePosition reads the host cursor. port.login_flow asserts the main instance's PART_MAIN model has meshes, its diffuse image loaded and the WAIT motion moves the bones between frames; offline and live pass, port_gate macos PASS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
5266b00c6e
commit
668f48d6ec
@@ -0,0 +1,140 @@
|
||||
{
|
||||
"reference": "EterGrnLib/Mesh.cpp",
|
||||
"reference_sha256": "0bf1df8de3500d61abb7810dc7172d68afe5616984e05c575d6b82af7311ba25",
|
||||
"priority": "P4",
|
||||
"contracts": [],
|
||||
"functions": {
|
||||
"CGrannyMesh::LoadIndices": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::LoadIndices"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::LoadPNTVertices": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::LoadPNTVertices"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::NEW_LoadVertices": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::NEW_LoadVertices"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::DeformPNTVertices": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::DeformPNTVertices"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::CanDeformPNTVertices": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::CanDeformPNTVertices"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::GetGrannyMeshPointer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::GetGrannyMeshPointer"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::GetTriGroupNodeList": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::GetTriGroupNodeList"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::GetVertexCount": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::GetVertexCount"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::GetVertexBasePosition": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::GetVertexBasePosition"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::GetIndexBasePosition": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::GetIndexBasePosition"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::GetDefaultBoneIndices": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::GetDefaultBoneIndices"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::IsEmpty": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::IsEmpty"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::CreateFromGrannyMeshPointer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::CreateFromGrannyMeshPointer"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::LoadTriGroupNodeList": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::LoadTriGroupNodeList"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::RebuildTriGroupNodeList": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::RebuildTriGroupNodeList"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::LoadMaterials": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::LoadMaterials"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::IsTwoSide": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::IsTwoSide"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::SetPNT2Mesh": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::SetPNT2Mesh"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::Destroy": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::Destroy"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::Initialize": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::Initialize"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::CGrannyMesh": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::CGrannyMesh"
|
||||
]
|
||||
},
|
||||
"CGrannyMesh::~CGrannyMesh": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterGrnLib/Mesh.cpp:CGrannyMesh::~CGrannyMesh"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user