From 2a15cbde8ace7e4efd984eb50ee503944adfbf75 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 30 Aug 2020 18:01:01 -0400 Subject: [PATCH] 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 --- .../client/plugins/gpu/SceneUploader.java | 84 +------------------ 1 file changed, 2 insertions(+), 82 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java index dc11fbc846..b6818d8991 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java @@ -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);