mirror of
https://github.com/halpz/re3.git
synced 2025-07-25 15:22:47 +00:00
fix new renderer
This commit is contained in:
@ -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);
|
||||
|
@ -595,6 +595,7 @@ struct BuildingInst
|
||||
{
|
||||
rw::Matrix matrix;
|
||||
rw::gl3::InstanceDataHeader *instHeader;
|
||||
uint32 cullMode;
|
||||
uint8 fadeAlpha;
|
||||
bool lighting;
|
||||
};
|
||||
@ -627,6 +628,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
|
||||
assert(building->instHeader->platform == PLATFORM_GL3);
|
||||
building->fadeAlpha = 255;
|
||||
building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT);
|
||||
building->cullMode = rw::GetRenderState(rw::CULLMODE);
|
||||
rw::uint32 flags = atomic->geometry->flags;
|
||||
|
||||
WorldLights lights;
|
||||
@ -654,6 +656,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
|
||||
|
||||
// alright we're rendering this atomic
|
||||
if(!setupDone){
|
||||
rw::SetRenderState(rw::CULLMODE, building->cullMode);
|
||||
defaultShader->use();
|
||||
setWorldMatrix(&building->matrix);
|
||||
setupVertexInput(building->instHeader);
|
||||
@ -686,6 +689,7 @@ AtomicFullyTransparent(RpAtomic *atomic, int pass, int fadeAlpha)
|
||||
assert(building->instHeader->platform == PLATFORM_GL3);
|
||||
building->fadeAlpha = fadeAlpha;
|
||||
building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT);
|
||||
building->cullMode = rw::GetRenderState(rw::CULLMODE);
|
||||
building->matrix = *atomic->getFrame()->getLTM();
|
||||
numBlendInsts[pass]++;
|
||||
}
|
||||
@ -706,6 +710,7 @@ RenderBlendPass(int pass)
|
||||
for(i = 0; i < numBlendInsts[pass]; i++){
|
||||
BuildingInst *building = &blendInsts[pass][i];
|
||||
|
||||
rw::SetRenderState(rw::CULLMODE, building->cullMode);
|
||||
setupVertexInput(building->instHeader);
|
||||
setWorldMatrix(&building->matrix);
|
||||
if(building->lighting)
|
||||
|
Reference in New Issue
Block a user