Utterly broken 60fps rendering

This commit is contained in:
Anuken 2018-11-11 12:25:02 -05:00
parent ece3f96867
commit 656e4d529c
6 changed files with 27 additions and 40 deletions

View file

@ -16,7 +16,6 @@ import io.anuke.mindustry.entities.traits.BelowLiquidTrait;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.world.blocks.defense.ForceProjector.ShieldEntity;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Graphics;
@ -196,18 +195,17 @@ public class Renderer extends RendererModule{
batch.setProjectionMatrix(camera.combined);
Graphics.surface(pixelSurface, false);
// Graphics.surface(pixelSurface, false);
//Graphics.clear(clearColor);
Graphics.clear(clearColor);
blocks.drawFloor();
blocks.floor.drawFloor();
drawAndInterpolate(groundEffectGroup, e -> e instanceof BelowLiquidTrait);
drawAndInterpolate(puddleGroup);
drawAndInterpolate(groundEffectGroup, e -> !(e instanceof BelowLiquidTrait));
blocks.processBlocks();
blocks.drawShadows();
//blocks.drawShadows();
for(Team team : Team.all){
if(blocks.isTeamShown(team)){
boolean outline = team != players[0].getTeam() && team != Team.none;
@ -215,13 +213,13 @@ public class Renderer extends RendererModule{
if(outline){
Shaders.outline.color.set(team.color);
Shaders.outline.color.a = 0.8f;
Graphics.beginShaders(Shaders.outline);
//Graphics.beginShaders(Shaders.outline);
}
blocks.drawTeamBlocks(Layer.block, team);
if(outline){
Graphics.endShaders();
//Graphics.endShaders();
}
}
}
@ -238,7 +236,7 @@ public class Renderer extends RendererModule{
blocks.skipLayer(Layer.turret);
blocks.drawBlocks(Layer.laser);
drawFlyerShadows();
//drawFlyerShadows();
drawAllTeams(true);
@ -248,28 +246,29 @@ public class Renderer extends RendererModule{
overlays.drawBottom();
drawAndInterpolate(playerGroup, p -> true, Player::drawBuildRequests);
/*
Graphics.beginShaders(Shaders.shield);
EntityDraw.draw(shieldGroup);
EntityDraw.drawWith(shieldGroup, shield -> true, shield -> ((ShieldEntity)shield).drawOver());
Draw.color(Palette.accent);
Graphics.endShaders();
Draw.color();
Draw.color();*/
overlays.drawTop();
if(showFog){
Graphics.surface();
// Graphics.surface();
}else{
Graphics.flushSurface();
// Graphics.flushSurface();
}
batch.end();
//batch.end();
if(showFog){
fog.draw();
// fog.draw();
}
Graphics.beginCam();
//Graphics.beginCam();
EntityDraw.setClip(false);
drawAndInterpolate(playerGroup, p -> !p.isDead() && !p.isLocal, Player::drawName);
EntityDraw.setClip(true);
@ -310,13 +309,13 @@ public class Renderer extends RendererModule{
Shaders.outline.color.set(team.color);
Shaders.mix.color.set(Color.WHITE);
Graphics.beginShaders(Shaders.outline);
Graphics.shader(Shaders.mix, true);
//Graphics.beginShaders(Shaders.outline);
//Graphics.shader(Shaders.mix, true);
drawAndInterpolate(unitGroups[team.ordinal()], u -> u.isFlying() == flying && !u.isDead(), Unit::drawAll);
drawAndInterpolate(playerGroup, p -> p.isFlying() == flying && p.getTeam() == team, Unit::drawAll);
Graphics.shader();
//Graphics.shader();
blocks.drawTeamBlocks(Layer.turret, team);
Graphics.endShaders();
// Graphics.endShaders();
drawAndInterpolate(unitGroups[team.ordinal()], u -> u.isFlying() == flying && !u.isDead(), Unit::drawOver);
drawAndInterpolate(playerGroup, p -> p.isFlying() == flying && p.getTeam() == team, Unit::drawOver);

View file

@ -70,7 +70,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
public TargetTrait moveTarget;
private float walktime;
private Queue<BuildRequest> placeQueue = new ThreadQueue<>();
private Queue<BuildRequest> placeQueue = new Queue<>();
private Tile mining;
private CarriableTrait carrying;
private Trail trail = new Trail(12);

View file

@ -45,7 +45,7 @@ public class Drone extends FlyingUnit implements BuilderTrait{
protected Item targetItem;
protected Tile mineTile;
protected Queue<BuildRequest> placeQueue = new ThreadQueue<>();
protected Queue<BuildRequest> placeQueue = new Queue<>();
protected boolean isBreaking;
public final UnitState

View file

@ -23,7 +23,7 @@ public class BlockRenderer{
private final static int initialRequests = 32 * 32;
private final static int expandr = 4;
private FloorRenderer floorRenderer;
public final FloorRenderer floor = new FloorRenderer();
private Array<BlockRequest> requests = new Array<>(true, initialRequests, BlockRequest.class);
private IntSet teamChecks = new IntSet();
@ -34,7 +34,6 @@ public class BlockRenderer{
private Surface shadows = Graphics.createSurface().setSize(2, 2);
public BlockRenderer(){
floorRenderer = new FloorRenderer();
for(int i = 0; i < requests.size; i++){
requests.set(i, new BlockRequest());
@ -222,18 +221,6 @@ public class BlockRenderer{
}
}
public void beginFloor(){
floorRenderer.beginDraw();
}
public void endFloor(){
floorRenderer.endDraw();
}
public void drawFloor(){
floorRenderer.drawFloor();
}
private void layerBegins(Layer layer){
}

View file

@ -65,15 +65,16 @@ public enum CacheLayer{
protected void beginShader(){
//renderer.getBlocks().endFloor();
renderer.effectSurface.getBuffer().bind();
renderer.effectSurface.getBuffer().begin();
Graphics.clear(Color.CLEAR);
//renderer.getBlocks().beginFloor();
}
public void endShader(Shader shader){
renderer.blocks.endFloor();
renderer.blocks.floor.endDraw();
renderer.pixelSurface.getBuffer().bind();
renderer.effectSurface.getBuffer().end();
//renderer.pixelSurface.getBuffer().bind();
Graphics.shader(shader);
Graphics.begin();
@ -81,6 +82,6 @@ public enum CacheLayer{
Core.camera.viewportWidth * Core.camera.zoom, -Core.camera.viewportHeight * Core.camera.zoom);
Graphics.end();
Graphics.shader();
renderer.blocks.beginFloor();
renderer.blocks.floor.beginDraw();
}
}

View file

@ -85,7 +85,7 @@ public class FloorRenderer{
drawnLayers.sort();
Graphics.end();
//Graphics.end();
beginDraw();
for(int i = 0; i < drawnLayers.size; i++){