Renderer optimization (occlusion)
This commit is contained in:
parent
0bb860fc8d
commit
8789118ca7
4 changed files with 36 additions and 3 deletions
Binary file not shown.
Binary file not shown.
|
@ -35,8 +35,37 @@ public class Renderer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawImage(Image image, int offX, int offY) {
|
public void drawImage(Image image, int offX, int offY) {
|
||||||
for (int y = 0; y < image.getH(); y++) {
|
int xAdjust = 0;
|
||||||
for (int x = 0; x < image.getW(); x++) {
|
int yAdjust = 0;
|
||||||
|
int widthAdjust = image.getW();
|
||||||
|
int heightAdjust = image.getH();
|
||||||
|
|
||||||
|
if (offX < -image.getW()) { return; }
|
||||||
|
|
||||||
|
if (offY < -image.getH()) { return; }
|
||||||
|
|
||||||
|
if (offX >= pW) { return; }
|
||||||
|
|
||||||
|
if (offY >= pH) { return; }
|
||||||
|
|
||||||
|
if (offX < 0) {
|
||||||
|
xAdjust -= offX;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (offY < 0) {
|
||||||
|
yAdjust -= offY;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (widthAdjust + offX >= pW) {
|
||||||
|
widthAdjust -= widthAdjust + offX - pW;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (heightAdjust + offY >= pH) {
|
||||||
|
heightAdjust -= heightAdjust + offY - pH;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int y = yAdjust; y < heightAdjust; y++) {
|
||||||
|
for (int x = xAdjust; x < widthAdjust; x++) {
|
||||||
setPixel(x + offX, y + offY, image.getP()[x + y * image.getW()]);
|
setPixel(x + offX, y + offY, image.getP()[x + y * image.getW()]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package bz.bronze.pixels.game;
|
package bz.bronze.pixels.game;
|
||||||
|
|
||||||
|
import java.awt.event.KeyEvent;
|
||||||
|
|
||||||
import bz.bronze.pixels.engine.AbstractGame;
|
import bz.bronze.pixels.engine.AbstractGame;
|
||||||
import bz.bronze.pixels.engine.GameContainer;
|
import bz.bronze.pixels.engine.GameContainer;
|
||||||
import bz.bronze.pixels.engine.Renderer;
|
import bz.bronze.pixels.engine.Renderer;
|
||||||
|
@ -16,7 +18,9 @@ public class GameManager extends AbstractGame {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(float dt) {
|
public void update(float dt) {
|
||||||
|
if (gc.input.isKey(KeyEvent.VK_ESCAPE)) {
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue