From c58d98a39ea3fa5e1f515fbac96eb58350a6de3e Mon Sep 17 00:00:00 2001 From: aap Date: Sun, 28 Feb 2021 19:07:32 +0100 Subject: fix new renderer --- src/extras/custompipes_d3d9.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/extras/custompipes_d3d9.cpp') diff --git a/src/extras/custompipes_d3d9.cpp b/src/extras/custompipes_d3d9.cpp index dad42b33..8b984448 100644 --- a/src/extras/custompipes_d3d9.cpp +++ b/src/extras/custompipes_d3d9.cpp @@ -568,6 +568,7 @@ struct BuildingInst { rw::RawMatrix combinedMat; rw::d3d9::InstanceDataHeader *instHeader; + uint32 cullMode; uint8 fadeAlpha; bool lighting; }; @@ -612,6 +613,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass) assert(building->instHeader->platform == PLATFORM_D3D9); building->fadeAlpha = 255; building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT); + building->cullMode = rw::GetRenderState(rw::CULLMODE); rw::uint32 flags = atomic->geometry->flags; bool setupDone = false; @@ -630,6 +632,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass) // alright we're rendering this atomic if(!setupDone){ + rw::SetRenderState(rw::CULLMODE, building->cullMode); setStreamSource(0, building->instHeader->vertexStream[0].vertexBuffer, 0, building->instHeader->vertexStream[0].stride); setIndices(building->instHeader->indexBuffer); setVertexDeclaration(building->instHeader->vertexDeclaration); @@ -671,6 +674,7 @@ AtomicFullyTransparent(RpAtomic *atomic, int pass, int fadeAlpha) assert(building->instHeader->platform == PLATFORM_D3D9); building->fadeAlpha = fadeAlpha; building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT); + building->cullMode = rw::GetRenderState(rw::CULLMODE); SetMatrix(building, atomic->getFrame()->getLTM()); numBlendInsts[pass]++; } @@ -688,6 +692,7 @@ RenderBlendPass(int pass) for(i = 0; i < numBlendInsts[pass]; i++){ BuildingInst *building = &blendInsts[pass][i]; + rw::SetRenderState(rw::CULLMODE, building->cullMode); setStreamSource(0, building->instHeader->vertexStream[0].vertexBuffer, 0, building->instHeader->vertexStream[0].stride); setIndices(building->instHeader->indexBuffer); setVertexDeclaration(building->instHeader->vertexDeclaration); -- cgit v1.2.3