Files
mtgodot-poc/audit/port-map/EterGrnLib/Material.cpp.json
T
shenleiandClaude Opus 5.5 5285ca85fd native render: transliterate D3D8 fixed-function pipeline (unit A)
- Texture coordinates: TEXCOORDINDEX generation (camera-space normal /
  position / reflection vector, LOCALVIEWER) and D3DTS_TEXTUREn under
  TEXTURETRANSFORMFLAGS (incl. PROJECTED) now run in native.vert; the
  RecordingDevice CPU uv baking and the sphere-map / multiplicative-shadow
  shader hacks are removed. Godot consumer uses Render3DStageTexcoords.
- Lighting: 8 D3D lights in camera space, 1/(a0+a1d+a2d^2) without clamp,
  spot cone theta/2 phi/2 with falloff, diffuse/ambient/emissive material
  sources, NORMALIZENORMALS, inverse-transpose normal matrix.
- Alpha test compares 8-bit alpha against ALPHAREF with ALPHAFUNC.
- Back-buffer Clear() is recorded in draw order and executed with
  vkCmdClearAttachments; render pass clears to 0xff000000.
- D3DVIEWPORT8 (incl. MinZ/MaxZ) is dynamic per-draw state.
- Missing vertex diffuse is opaque white; alpha blend mirrors SRC/DESTBLEND.
- CScreen::ms_clearDepth / ms_diffuseColor initialised to 40250's
  1.0f / 0xffffffff (were zero; exposed once clears were executed).
- Capture format v8; --screenshot-out FILE.bmp swapchain readback.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 12:54:13 +09:00

226 lines
7.2 KiB
JSON

{
"reference": "EterGrnLib/Material.cpp",
"reference_sha256": "8c4069bff6f4f05ca68296fa108d0acea989d64e2d621d7d646d378487b30d5f",
"priority": "P4",
"contracts": [],
"functions": {
"CGrannyMaterial::TranslateSpecularMatrix": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::TranslateSpecularMatrix"
]
},
"CGrannyMaterial::ApplyRenderState": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::ApplyRenderState"
],
"note": "Native renderer no longer special-cases the sphere map: stage 1 CAMERASPACEREFLECTIONVECTOR, D3DTS_TEXTURE1 (ms_matSpecular) and MODULATEALPHA_ADDCOLOR run through the generic D3D8 texcoord/stage emulation. Visual parity NEEDS_LIVE."
},
"CGrannyMaterial::RestoreRenderState": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::RestoreRenderState"
]
},
"CGrannyMaterial::Copy": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::Copy"
]
},
"CGrannyMaterial::CGrannyMaterial": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::CGrannyMaterial"
]
},
"CGrannyMaterial::~CGrannyMaterial": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::~CGrannyMaterial"
]
},
"CGrannyMaterial::GetType": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::GetType"
]
},
"CGrannyMaterial::SetImagePointer": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::SetImagePointer"
]
},
"CGrannyMaterial::IsIn": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::IsIn"
]
},
"CGrannyMaterial::SetSpecularInfo": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::SetSpecularInfo"
]
},
"CGrannyMaterial::IsEqual": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::IsEqual"
]
},
"CGrannyMaterial::GetD3DTexture": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::GetD3DTexture"
]
},
"CGrannyMaterial::GetImagePointer": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::GetImagePointer"
]
},
"CGrannyMaterial::GetDiffuseTexture": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::GetDiffuseTexture"
]
},
"CGrannyMaterial::GetOpacityTexture": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::GetOpacityTexture"
]
},
"CGrannyMaterial::__IsSpecularEnable": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::__IsSpecularEnable"
]
},
"CGrannyMaterial::__GetSpecularPower": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::__GetSpecularPower"
]
},
"CGrannyMaterial::__GetImagePointer": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::__GetImagePointer"
]
},
"CGrannyMaterial::CreateFromGrannyMaterialPointer": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::CreateFromGrannyMaterialPointer"
]
},
"CGrannyMaterial::Initialize": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::Initialize"
]
},
"CGrannyMaterial::__ApplyDiffuseRenderState": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::__ApplyDiffuseRenderState"
]
},
"CGrannyMaterial::__RestoreDiffuseRenderState": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::__RestoreDiffuseRenderState"
]
},
"CGrannyMaterial::__ApplySpecularRenderState": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::__ApplySpecularRenderState"
]
},
"CGrannyMaterial::__RestoreSpecularRenderState": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::__RestoreSpecularRenderState"
]
},
"CGrannyMaterial::CreateSphereMap": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::CreateSphereMap"
]
},
"CGrannyMaterial::DestroySphereMap": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterial::DestroySphereMap"
]
},
"CGrannyMaterialPalette::CGrannyMaterialPalette": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterialPalette::CGrannyMaterialPalette"
]
},
"CGrannyMaterialPalette::~CGrannyMaterialPalette": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterialPalette::~CGrannyMaterialPalette"
]
},
"CGrannyMaterialPalette::Copy": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterialPalette::Copy"
]
},
"CGrannyMaterialPalette::Clear": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterialPalette::Clear"
]
},
"CGrannyMaterialPalette::GetMaterialRef": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterialPalette::GetMaterialRef"
]
},
"CGrannyMaterialPalette::SetMaterialImagePointer": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterialPalette::SetMaterialImagePointer"
]
},
"CGrannyMaterialPalette::SetMaterialData": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterialPalette::SetMaterialData"
]
},
"CGrannyMaterialPalette::SetSpecularInfo": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterialPalette::SetSpecularInfo"
]
},
"CGrannyMaterialPalette::RegisterMaterial": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterialPalette::RegisterMaterial"
]
},
"CGrannyMaterialPalette::GetMaterialCount": {
"status": "PORTED",
"impl": [
"extension/src/port/EterGrnLib/Material.cpp:CGrannyMaterialPalette::GetMaterialCount"
]
}
}
}