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);