From 68f8ef54acd041c5030d09585baf7b81af7183f6 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 20 Mar 2018 20:14:39 -0400 Subject: [PATCH] Removing CacheBatch due to performance issues --- core/assets/version.properties | 4 +- .../mindustry/editor/MapEditorDialog.java | 114 +++++------------- .../anuke/mindustry/editor/MapRenderer.java | 9 +- .../io/anuke/mindustry/editor/MapView.java | 4 +- 4 files changed, 41 insertions(+), 90 deletions(-) diff --git a/core/assets/version.properties b/core/assets/version.properties index fc2ca7841d..7b476f3fbe 100644 --- a/core/assets/version.properties +++ b/core/assets/version.properties @@ -1,7 +1,7 @@ #Autogenerated file. Do not modify. -#Mon Mar 19 23:08:29 EDT 2018 +#Tue Mar 20 19:27:20 EDT 2018 version=release -androidBuildCode=540 +androidBuildCode=553 name=Mindustry code=3.4 build=custom build diff --git a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java index 2eb33797c4..22e917ec0a 100644 --- a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java @@ -16,12 +16,10 @@ import io.anuke.ucore.core.Timers; import io.anuke.ucore.scene.Element; import io.anuke.ucore.scene.actions.Actions; import io.anuke.ucore.scene.builders.build; -import io.anuke.ucore.scene.builders.label; import io.anuke.ucore.scene.builders.table; import io.anuke.ucore.scene.ui.*; import io.anuke.ucore.scene.ui.layout.Stack; import io.anuke.ucore.scene.ui.layout.Table; -import io.anuke.ucore.util.Bundles; import static io.anuke.mindustry.Vars.gwt; import static io.anuke.mindustry.Vars.ui; @@ -205,77 +203,23 @@ public class MapEditorDialog extends Dialog{ public void build(){ new table(){{ - float isize = 16*2f; aleft(); - /* - new table(){{ - - defaults().growY().width(130f).padBottom(-6); - - new imagebutton("icon-terrain", isize, () -> - dialog.show() - ).text("$text.editor.generate"); - - row(); - - new imagebutton("icon-resize", isize, () -> - resizeDialog.show() - ).text("$text.editor.resize").padTop(4f); - - row(); - - new imagebutton("icon-load-map", isize, () -> - loadDialog.show() - ).text("$text.editor.loadmap"); - - row(); - - new imagebutton("icon-save-map", isize, ()-> - saveDialog.show() - ).text("$text.editor.savemap"); - - row(); - /* - new imagebutton("icon-load-image", isize, () -> - openFile.show() - ).text("$text.editor.loadimage"); - - row(); - - new imagebutton("icon-save-image", isize, () -> - saveFile.show() - ).text("$text.editor.saveimage"); - - row(); - - new imagebutton("icon-back", isize, () -> { - if(!saved){ - ui.showConfirm("$text.confirm", "$text.editor.unsaved", - MapEditorDialog.this::hide); - }else{ - hide(); - } - }).padBottom(0).text("$text.back"); - - }}.left().growY().end(); - */ - + new table("button"){{ - add(view).grow(); - }}.grow().end(); - - new table(){{ - Table tools = new Table("button"); + margin(0); + Table tools = new Table(); tools.top(); - tools.marginTop(0).marginBottom(6); - + ButtonGroup group = new ButtonGroup<>(); int i = 1; - tools.defaults().size(53f, 58f).padBottom(-6); + tools.defaults().size(60f, 64f).padBottom(-5.1f); ImageButton undo = tools.addImageButton("icon-undo", 16*2f, () -> view.undo()).get(); ImageButton redo = tools.addImageButton("icon-redo", 16*2f, () -> view.redo()).get(); + + tools.row(); + ImageButton grid = tools.addImageButton("icon-grid", "toggle", 16*2f, () -> view.setGrid(!view.isGrid())).get(); undo.setDisabled(() -> !view.getStack().canUndo()); @@ -284,7 +228,7 @@ public class MapEditorDialog extends Dialog{ undo.update(() -> undo.getImage().setColor(undo.isDisabled() ? Color.GRAY : Color.WHITE)); redo.update(() -> redo.getImage().setColor(redo.isDisabled() ? Color.GRAY : Color.WHITE)); grid.update(() -> grid.setChecked(view.isGrid())); - + for(EditorTool tool : EditorTool.values()){ ImageButton button = new ImageButton("icon-" + tool.name(), "toggle"); button.clicked(() -> view.setTool(tool)); @@ -293,31 +237,33 @@ public class MapEditorDialog extends Dialog{ group.add(button); if (tool == EditorTool.pencil) button.setChecked(true); - + tools.add(button).padBottom(-6f); - if(i++ % 4 == 1) tools.row(); + if(i++ % 2 == 1) tools.row(); } - - add(tools).width(53*4).padBottom(-6); - + + add(tools).growY().top().padBottom(-6); + row(); - + /* new table("button"){{ - margin(10f); - Slider slider = new Slider(0, MapEditor.brushSizes.length-1, 1, false); + Slider slider = new Slider(0, MapEditor.brushSizes.length-1, 1, true); slider.moved(f -> editor.setBrushSize(MapEditor.brushSizes[(int)(float)f])); new label(() -> Bundles.format("text.editor.brushsize", MapEditor.brushSizes[(int)slider.getValue()])).left(); row(); add(slider).growX().padTop(4f); - }}.growX().padBottom(-6).end(); - - row(); - - /* - new table("button"){{ - get().addCheck("$text.oregen", b -> editor.getMap().oreGen = b) - .update(c -> c.setChecked(editor.getMap().oreGen)).padTop(3).padBottom(3); }}.growX().padBottom(-6).end();*/ + + }}.left().growY().end(); + + + new table("button"){{ + margin(5); + marginBottom(10); + add(view).grow(); + }}.grow().end(); + + new table(){{ row(); @@ -427,7 +373,7 @@ public class MapEditorDialog extends Dialog{ group.add(button); content.add(button).pad(4f).size(53f, 58f); - if(i++ % 2 == 1){ + if(i++ % 3 == 2){ content.row(); } } @@ -435,8 +381,8 @@ public class MapEditorDialog extends Dialog{ group.getButtons().get(2).setChecked(true); Table extra = new Table("button"); - extra.labelWrap(() -> editor.getDrawBlock().formalName).width(180f).center(); - table.add(extra).padBottom(-6).growX(); + extra.labelWrap(() -> editor.getDrawBlock().formalName).width(220f).center(); + table.add(extra).growX(); table.row(); table.add(pane).growY().fillX(); } diff --git a/core/src/io/anuke/mindustry/editor/MapRenderer.java b/core/src/io/anuke/mindustry/editor/MapRenderer.java index bbed8eb9bc..4c7e3e0099 100644 --- a/core/src/io/anuke/mindustry/editor/MapRenderer.java +++ b/core/src/io/anuke/mindustry/editor/MapRenderer.java @@ -2,6 +2,7 @@ package io.anuke.mindustry.editor; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.math.Matrix4; import com.badlogic.gdx.utils.IntSet; import com.badlogic.gdx.utils.IntSet.IntSetIterator; import io.anuke.mindustry.io.MapTileData.TileDataWriter; @@ -9,8 +10,10 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.blocks.Blocks; import io.anuke.ucore.core.Core; import io.anuke.ucore.core.Graphics; +import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.CacheBatch; import io.anuke.ucore.graphics.Draw; +import io.anuke.ucore.util.Log; import io.anuke.ucore.util.Mathf; import static io.anuke.mindustry.Vars.tilesize; @@ -21,6 +24,7 @@ public class MapRenderer { private int[][] chunks; private IntSet updates = new IntSet(); private MapEditor editor; + private Matrix4 matrix = new Matrix4(); public MapRenderer(MapEditor editor){ this.editor = editor; @@ -41,6 +45,7 @@ public class MapRenderer { updateAll(); } + public void draw(float tx, float ty, float tw, float th){ Graphics.end(); Graphics.useBatch(batch); @@ -58,8 +63,6 @@ public class MapRenderer { Gdx.gl.glEnable(GL20.GL_BLEND); - - batch.getTransformMatrix().setToTranslation(tx, ty, 0).scl(tw / (chunks.length * chunksize * tilesize), th / (chunks[0].length * chunksize * tilesize), 1f); batch.setProjectionMatrix(Core.batch.getProjectionMatrix()); @@ -99,6 +102,7 @@ public class MapRenderer { } private void render(int chunkx, int chunky, int previousID){ + Timers.mark(); if(previousID == -1){ batch.begin(); }else{ @@ -140,5 +144,6 @@ public class MapRenderer { batch.end(); if(previousID == -1) chunks[chunkx][chunky] = batch.getLastCache(); + Log.info("Time to render cache: {0}", Timers.elapsed()); } } diff --git a/core/src/io/anuke/mindustry/editor/MapView.java b/core/src/io/anuke/mindustry/editor/MapView.java index e477e3be96..a23bf2115c 100644 --- a/core/src/io/anuke/mindustry/editor/MapView.java +++ b/core/src/io/anuke/mindustry/editor/MapView.java @@ -206,7 +206,7 @@ public class MapView extends Element implements GestureListener{ image.setImageSize(editor.getMap().width(), editor.getMap().height()); batch.flush(); - boolean pop = ScissorStack.pushScissors(rect.set(x + width/2 - size/2, y + height/2 - size/2, size, size)); + boolean pop = ScissorStack.pushScissors(rect.set(x, y, width, height)); //batch.draw(editor.texture(), centerx - sclwidth/2, centery - sclheight/2, sclwidth, sclheight); //TODO actually render the map here? @@ -243,7 +243,7 @@ public class MapView extends Element implements GestureListener{ Draw.color(Colors.get("accent")); Lines.stroke(Unit.dp.scl(3f)); - Lines.rect(x + width/2 - size/2, y + height/2 - size/2, size, size); + Lines.rect(x, y, width, height); Draw.reset(); }