2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-14 16:46:10 +00:00

aurora: WIP cache for display lists & static buffers

This commit is contained in:
2022-03-15 02:18:45 -04:00
parent bbdad137af
commit 02a7b85b23
18 changed files with 263 additions and 215 deletions

View File

@@ -259,8 +259,8 @@ void CCubeModel::EnableShadowMaps(const CTexture& shadowTex, const zeus::CTransf
void CCubeModel::DisableShadowMaps() { sRenderModelShadow = false; }
void CCubeModel::SetArraysCurrent() {
CGX::SetArray(GX::VA_POS, x0_modelInstance.GetVertexPointer());
CGX::SetArray(GX::VA_NRM, x0_modelInstance.GetNormalPointer());
CGX::SetArray(GX::VA_POS, x0_modelInstance.GetVertexPointer(), true);
CGX::SetArray(GX::VA_NRM, x0_modelInstance.GetNormalPointer(), true);
SetStaticArraysCurrent();
}
@@ -280,8 +280,8 @@ void CCubeModel::SetRenderModelBlack(bool v) {
}
void CCubeModel::SetSkinningArraysCurrent(TConstVectorRef positions, TConstVectorRef normals) {
CGX::SetArray(GX::VA_POS, positions);
CGX::SetArray(GX::VA_NRM, normals);
CGX::SetArray(GX::VA_POS, positions, false);
CGX::SetArray(GX::VA_NRM, normals, false);
// colors unused
SetStaticArraysCurrent();
}
@@ -294,21 +294,21 @@ void CCubeModel::SetStaticArraysCurrent() {
sUsingPackedLightmaps = false;
}
if (sUsingPackedLightmaps) {
CGX::SetArray(GX::VA_TEX0, packedTexCoords);
CGX::SetArray(GX::VA_TEX0, packedTexCoords, true);
} else {
CGX::SetArray(GX::VA_TEX0, texCoords);
CGX::SetArray(GX::VA_TEX0, texCoords, true);
}
// TexCoord1 is currently used for all remaining
CGX::SetArray(GX::VA_TEX1, texCoords);
CGX::SetArray(GX::VA_TEX1, texCoords, true);
CCubeMaterial::KillCachedViewDepState();
}
void CCubeModel::SetUsingPackedLightmaps(bool v) {
sUsingPackedLightmaps = v;
if (v) {
CGX::SetArray(GX::VA_TEX0, x0_modelInstance.GetPackedTCPointer());
CGX::SetArray(GX::VA_TEX0, x0_modelInstance.GetPackedTCPointer(), true);
} else {
CGX::SetArray(GX::VA_TEX0, x0_modelInstance.GetTCPointer());
CGX::SetArray(GX::VA_TEX0, x0_modelInstance.GetTCPointer(), true);
}
}