From 4a1101bd7df1253f9e865a7d3929107b36d72144 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Sat, 15 Apr 2023 10:04:29 -0500 Subject: [PATCH] feat(gx): stub ffp state syncing in d3d backend --- src/gx/d3d/CGxDeviceD3d.cpp | 18 +++++++++++++++++- src/gx/d3d/CGxDeviceD3d.hpp | 3 +++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/gx/d3d/CGxDeviceD3d.cpp b/src/gx/d3d/CGxDeviceD3d.cpp index d0fb4ed..1a8b1f5 100644 --- a/src/gx/d3d/CGxDeviceD3d.cpp +++ b/src/gx/d3d/CGxDeviceD3d.cpp @@ -1580,7 +1580,11 @@ void CGxDeviceD3d::IStateSync() { this->IShaderConstantsFlush(); this->IRsSync(0); - // TODO ffp if vertex shader is disabled + if (this->m_hwRenderStates[GxRs_VertexShader] == nullptr && this->m_appRenderStates[GxRs_VertexShader].m_value == nullptr) { + this->IStateSyncLights(); + this->IStateSyncMaterial(); + this->IStateSyncXforms(); + } this->IStateSyncEnables(); @@ -1611,6 +1615,14 @@ void CGxDeviceD3d::IStateSyncIndexPtr() { } } +void CGxDeviceD3d::IStateSyncLights() { + // TODO +} + +void CGxDeviceD3d::IStateSyncMaterial() { + // TODO +} + void CGxDeviceD3d::IStateSyncVertexPtrs() { if (this->m_primVertexFormat < GxVertexBufferFormats_Last && this->m_d3dVertexDecl[this->m_primVertexFormat]) { auto d3dVertexDecl = this->m_d3dVertexDecl[this->m_primVertexFormat]; @@ -1691,6 +1703,10 @@ void CGxDeviceD3d::IStateSyncVertexPtrs() { } } +void CGxDeviceD3d::IStateSyncXforms() { + // TODO +} + void CGxDeviceD3d::ITexCreate(CGxTex* texId) { uint32_t width, height, startLevel, endLevel; this->ITexWHDStartEnd(texId, width, height, startLevel, endLevel); diff --git a/src/gx/d3d/CGxDeviceD3d.hpp b/src/gx/d3d/CGxDeviceD3d.hpp index 18437d9..456a36f 100644 --- a/src/gx/d3d/CGxDeviceD3d.hpp +++ b/src/gx/d3d/CGxDeviceD3d.hpp @@ -294,7 +294,10 @@ class CGxDeviceD3d : public CGxDevice { void IStateSync(); void IStateSyncEnables(); void IStateSyncIndexPtr(); + void IStateSyncLights(); + void IStateSyncMaterial(); void IStateSyncVertexPtrs(); + void IStateSyncXforms(); void ITexCreate(CGxTex* texId); void ITexUpload(CGxTex* texId); void IXformSetProjection(const C44Matrix& matrix);