mirror of
https://github.com/Patoke/LCERenewed.git
synced 2026-08-25 14:04:57 +00:00
feat(TU25): add new render layer for water so some semi transparent objects don't cull water
This commit is contained in:
+22
-15
@@ -213,7 +213,7 @@ void Chunk::rebuild()
|
||||
|
||||
int r = 1;
|
||||
|
||||
int lists = levelRenderer->getGlobalIndexForChunk(this->x,this->y,this->z,level) * 2;
|
||||
int lists = levelRenderer->getGlobalIndexForChunk(this->x,this->y,this->z,level) * 3;
|
||||
lists += levelRenderer->chunkLists;
|
||||
|
||||
PIXEndNamedEvent();
|
||||
@@ -323,7 +323,7 @@ void Chunk::rebuild()
|
||||
if( empty )
|
||||
{
|
||||
// 4J - added - clear any renderer data associated with this
|
||||
for (int currentLayer = 0; currentLayer < 2; currentLayer++)
|
||||
for (int currentLayer = 0; currentLayer < 3; currentLayer++)
|
||||
{
|
||||
levelRenderer->setGlobalChunkFlag(this->x, this->y, this->z, level, LevelRenderer::CHUNK_FLAG_EMPTY0, currentLayer);
|
||||
RenderManager.CBuffClear(lists + currentLayer);
|
||||
@@ -348,7 +348,7 @@ void Chunk::rebuild()
|
||||
bounds.boundingBox[4] = SIZE+g;
|
||||
bounds.boundingBox[5] = XZSIZE+g;
|
||||
}
|
||||
for (int currentLayer = 0; currentLayer < 2; currentLayer++)
|
||||
for (int currentLayer = 0; currentLayer < 3; currentLayer++)
|
||||
{
|
||||
bool renderNextLayer = false;
|
||||
bool rendered = false;
|
||||
@@ -465,10 +465,16 @@ void Chunk::rebuild()
|
||||
}
|
||||
if((currentLayer==0)&&(!renderNextLayer))
|
||||
{
|
||||
levelRenderer->setGlobalChunkFlag(this->x, this->y, this->z, level, LevelRenderer::CHUNK_FLAG_EMPTY1);
|
||||
levelRenderer->setGlobalChunkFlag(this->x, this->y, this->z, level, LevelRenderer::CHUNK_FLAG_EMPTY1 | LevelRenderer::CHUNK_FLAG_NOTSKYLIT);
|
||||
RenderManager.CBuffClear(lists + 1);
|
||||
RenderManager.CBuffClear(lists + 2);
|
||||
break;
|
||||
}
|
||||
if((currentLayer==2)&&(!renderNextLayer))
|
||||
{
|
||||
levelRenderer->setGlobalChunkFlag(this->x, this->y, this->z, level, LevelRenderer::CHUNK_FLAG_NOTSKYLIT);
|
||||
RenderManager.CBuffClear(lists + 2);
|
||||
}
|
||||
}
|
||||
|
||||
// 4J MGH - added this to take the bound from the value calc'd in the tesselator
|
||||
@@ -599,14 +605,15 @@ void Chunk::rebuild()
|
||||
|
||||
// 4J - These removed items are now also removed from globalRenderableTileEntities
|
||||
|
||||
if( LevelChunk::touchedSky )
|
||||
{
|
||||
levelRenderer->clearGlobalChunkFlag(x, y, z, level, LevelRenderer::CHUNK_FLAG_NOTSKYLIT);
|
||||
}
|
||||
else
|
||||
{
|
||||
levelRenderer->setGlobalChunkFlag(x, y, z, level, LevelRenderer::CHUNK_FLAG_NOTSKYLIT);
|
||||
}
|
||||
// @Patoke: this is now unused in favour of the new render layer
|
||||
//if( LevelChunk::touchedSky )
|
||||
//{
|
||||
// levelRenderer->clearGlobalChunkFlag(x, y, z, level, LevelRenderer::CHUNK_FLAG_NOTSKYLIT);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// levelRenderer->setGlobalChunkFlag(x, y, z, level, LevelRenderer::CHUNK_FLAG_NOTSKYLIT);
|
||||
//}
|
||||
levelRenderer->setGlobalChunkFlag(x, y, z, level, LevelRenderer::CHUNK_FLAG_COMPILED);
|
||||
PIXEndNamedEvent();
|
||||
return;
|
||||
@@ -960,11 +967,11 @@ void Chunk::reset()
|
||||
// printf("\t\t [dec] refcount %d at %d, %d, %d\n",refCount,x,y,z);
|
||||
if( refCount == 0 )
|
||||
{
|
||||
int lists = levelRenderer->getGlobalIndexForChunk(x, y, z, level) * 2;
|
||||
int lists = levelRenderer->getGlobalIndexForChunk(x, y, z, level) * 3;
|
||||
if(lists >= 0)
|
||||
{
|
||||
lists += levelRenderer->chunkLists;
|
||||
for (int i = 0; i < 2; i++)
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
// 4J - added - clear any renderer data associated with this unused list
|
||||
RenderManager.CBuffClear(lists + i);
|
||||
@@ -988,7 +995,7 @@ int Chunk::getList(int layer)
|
||||
{
|
||||
if (!clipChunk->visible) return -1;
|
||||
|
||||
int lists = levelRenderer->getGlobalIndexForChunk(x, y, z,level) * 2;
|
||||
int lists = levelRenderer->getGlobalIndexForChunk(x, y, z,level) * 3;
|
||||
lists += levelRenderer->chunkLists;
|
||||
|
||||
bool empty = levelRenderer->getGlobalChunkFlag(x, y, z, level, LevelRenderer::CHUNK_FLAG_EMPTY0, layer);
|
||||
|
||||
Reference in New Issue
Block a user