Keep a global ShapeRenderer instance rather than an instance per entity

This commit is contained in:
Matt Low 2018-11-12 21:22:16 +04:00
parent 219622ff53
commit c34610b3e3
6 changed files with 29 additions and 31 deletions

View File

@ -78,15 +78,15 @@ public class BrickBuster extends ApplicationAdapter {
long start_render = System.nanoTime(); long start_render = System.nanoTime();
for (Brick block : bricks) { for (Brick block : bricks) {
block.render(); block.render(sr);
} }
for (PowerUp powerUp : powerUps) { for (PowerUp powerUp : powerUps) {
powerUp.render(); powerUp.render(sr);
} }
for (Ball ball : balls) { for (Ball ball : balls) {
ball.render(); ball.render(sr);
} }
paddle.render(); paddle.render(sr);
if (shieldActive) { if (shieldActive) {
sr.begin(ShapeRenderer.ShapeType.Filled); sr.begin(ShapeRenderer.ShapeType.Filled);

View File

@ -2,6 +2,7 @@ package com.me.brickbuster.entity;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType; import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
@ -30,11 +31,11 @@ public class Ball extends Entity {
} }
@Override @Override
public void render() { public void render(ShapeRenderer sr) {
getShapeRenderer().begin(ShapeType.Filled); sr.begin(ShapeType.Filled);
getShapeRenderer().setColor(BALL_COLOR); sr.setColor(BALL_COLOR);
getShapeRenderer().circle(getPos().x, getPos().y, RADIUS); sr.circle(getPos().x, getPos().y, RADIUS);
getShapeRenderer().end(); sr.end();
} }
@Override @Override

View File

@ -1,6 +1,7 @@
package com.me.brickbuster.entity; package com.me.brickbuster.entity;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType; import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.me.brickbuster.BrickBuster; import com.me.brickbuster.BrickBuster;
@ -28,11 +29,11 @@ public class Brick extends Entity {
} }
@Override @Override
public void render() { public void render(ShapeRenderer sr) {
getShapeRenderer().begin(ShapeType.Filled); sr.begin(ShapeType.Filled);
getShapeRenderer().setColor(BLOCK_COLOR); sr.setColor(BLOCK_COLOR);
getShapeRenderer().rect(getX(), getY(), BLOCK_WIDTH, BLOCK_HEIGHT); sr.rect(getX(), getY(), BLOCK_WIDTH, BLOCK_HEIGHT);
getShapeRenderer().end(); sr.end();
} }
@Override @Override

View File

@ -6,17 +6,15 @@ import com.me.brickbuster.BrickBuster;
public abstract class Entity { public abstract class Entity {
private ShapeRenderer shapeRenderer;
private BrickBuster brickBuster; private BrickBuster brickBuster;
private Vector2 pos; private Vector2 pos;
public Entity(BrickBuster brickBuster, float x, float y) { public Entity(BrickBuster brickBuster, float x, float y) {
this.shapeRenderer = new ShapeRenderer();
this.brickBuster = brickBuster; this.brickBuster = brickBuster;
this.pos = new Vector2(x, y); this.pos = new Vector2(x, y);
} }
public abstract void render(); public abstract void render(ShapeRenderer sr);
public abstract void update(float dt); public abstract void update(float dt);
@ -24,10 +22,6 @@ public abstract class Entity {
return brickBuster; return brickBuster;
} }
public ShapeRenderer getShapeRenderer() {
return shapeRenderer;
}
public Vector2 getPos() { public Vector2 getPos() {
return pos; return pos;
} }

View File

@ -3,6 +3,7 @@ package com.me.brickbuster.entity;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input; import com.badlogic.gdx.Input;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType; import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.me.brickbuster.BrickBuster; import com.me.brickbuster.BrickBuster;
@ -24,11 +25,11 @@ public class Paddle extends Entity {
} }
@Override @Override
public void render() { public void render(ShapeRenderer sr) {
getShapeRenderer().begin(ShapeType.Filled); sr.begin(ShapeType.Filled);
getShapeRenderer().setColor(sticky? Color.GRAY : PADDLE_COLOR); sr.setColor(sticky? Color.GRAY : PADDLE_COLOR);
getShapeRenderer().rect(getX() - width/2, getY(), width, PADDLE_HEIGHT); sr.rect(getX() - width/2, getY(), width, PADDLE_HEIGHT);
getShapeRenderer().end(); sr.end();
} }
@Override @Override

View File

@ -2,6 +2,7 @@ package com.me.brickbuster.entity.powerup;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.me.brickbuster.BrickBuster; import com.me.brickbuster.BrickBuster;
import com.me.brickbuster.Utils; import com.me.brickbuster.Utils;
@ -23,11 +24,11 @@ public abstract class PowerUp extends Entity {
} }
@Override @Override
public void render() { public void render(ShapeRenderer sr) {
getShapeRenderer().begin(ShapeRenderer.ShapeType.Filled); sr.begin(ShapeType.Filled);
getShapeRenderer().setColor(color); sr.setColor(color);
getShapeRenderer().circle(getX(), getY(), RADIUS); sr.circle(getX(), getY(), RADIUS);
getShapeRenderer().end(); sr.end();
} }
@Override @Override