scene uploder: remove unnecessary reset

Instead we can just check the model scene id is correct and not have to be
concerned about reused Models from previous scenes having positive buffer
offsets

Co-authored-by: Jonathon Reesor <jonathon.reesor@gmail.com>
This commit is contained in:
Adam
2020-08-30 18:01:01 -04:00
parent 62a69b94c5
commit 2a15cbde8a

View File

@@ -59,21 +59,6 @@ class SceneUploader
vertexbuffer.clear();
uvBuffer.clear();
for (int z = 0; z < Constants.MAX_Z; ++z)
{
for (int x = 0; x < Constants.SCENE_SIZE; ++x)
{
for (int y = 0; y < Constants.SCENE_SIZE; ++y)
{
Tile tile = scene.getTiles()[z][x][y];
if (tile != null)
{
reset(tile);
}
}
}
}
for (int z = 0; z < Constants.MAX_Z; ++z)
{
for (int x = 0; x < Constants.SCENE_SIZE; ++x)
@@ -90,71 +75,6 @@ class SceneUploader
}
}
private void reset(Tile tile)
{
Tile bridge = tile.getBridge();
if (bridge != null)
{
reset(bridge);
}
SceneTilePaint sceneTilePaint = tile.getSceneTilePaint();
if (sceneTilePaint != null)
{
sceneTilePaint.setBufferOffset(-1);
}
SceneTileModel sceneTileModel = tile.getSceneTileModel();
if (sceneTileModel != null)
{
sceneTileModel.setBufferOffset(-1);
}
WallObject wallObject = tile.getWallObject();
if (wallObject != null)
{
if (wallObject.getRenderable1() instanceof Model)
{
((Model) wallObject.getRenderable1()).setBufferOffset(-1);
}
if (wallObject.getRenderable2() instanceof Model)
{
((Model) wallObject.getRenderable2()).setBufferOffset(-1);
}
}
GroundObject groundObject = tile.getGroundObject();
if (groundObject != null)
{
if (groundObject.getRenderable() instanceof Model)
{
((Model) groundObject.getRenderable()).setBufferOffset(-1);
}
}
DecorativeObject decorativeObject = tile.getDecorativeObject();
if (decorativeObject != null)
{
if (decorativeObject.getRenderable() instanceof Model)
{
((Model) decorativeObject.getRenderable()).setBufferOffset(-1);
}
}
GameObject[] gameObjects = tile.getGameObjects();
for (GameObject gameObject : gameObjects)
{
if (gameObject == null)
{
continue;
}
if (gameObject.getRenderable() instanceof Model)
{
((Model) gameObject.getRenderable()).setBufferOffset(-1);
}
}
}
private void upload(Tile tile, GpuIntBuffer vertexBuffer, GpuFloatBuffer uvBuffer)
{
Tile bridge = tile.getBridge();
@@ -424,9 +344,9 @@ class SceneUploader
private void uploadModel(Model model, GpuIntBuffer vertexBuffer, GpuFloatBuffer uvBuffer)
{
if (model.getBufferOffset() > 0)
if (model.getSceneId() == sceneId)
{
return;
return; // model has already been uploaded
}
model.setBufferOffset(offset);