Rename Window to Screen

This commit is contained in:
2021-03-09 19:49:50 +01:00
parent 4a1beb5101
commit d0bfa6369a
25 changed files with 110 additions and 109 deletions

View File

@@ -1,11 +1,11 @@
package com.bartlomiejpluta.base.engine.core.engine;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.engine.gc.OffHeapGarbageCollector;
import com.bartlomiejpluta.base.engine.logic.GameLogic;
import com.bartlomiejpluta.base.engine.thread.ThreadManager;
import com.bartlomiejpluta.base.engine.time.ChronoMeter;
import com.bartlomiejpluta.base.engine.ui.WindowManager;
import com.bartlomiejpluta.base.engine.ui.ScreenManager;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -16,20 +16,20 @@ import org.springframework.stereotype.Component;
public class DefaultGameEngine implements GameEngine {
private static final String THREAD_NAME = "Game Main Thread";
private final WindowManager windowManager;
private final ScreenManager screenManager;
private final ThreadManager threadManager;
private final GameLogic logic;
private final OffHeapGarbageCollector garbageCollector;
private final Thread thread;
private final Window window;
private final Screen screen;
private final ChronoMeter chrono;
private final int targetUps;
private boolean running = false;
@Autowired
public DefaultGameEngine(WindowManager windowManager,
public DefaultGameEngine(ScreenManager screenManager,
ThreadManager threadManager,
GameLogic logic,
OffHeapGarbageCollector garbageCollector,
@@ -37,12 +37,12 @@ public class DefaultGameEngine implements GameEngine {
@Value("${app.window.width}") int width,
@Value("${app.window.height}") int height,
@Value("${app.core.targetUps}") int targetUps) {
this.windowManager = windowManager;
this.screenManager = screenManager;
this.threadManager = threadManager;
this.logic = logic;
this.garbageCollector = garbageCollector;
this.window = windowManager.createWindow(title, width, height);
this.screen = screenManager.createScreen(title, width, height);
this.thread = threadManager.createThread(THREAD_NAME, this::run);
this.chrono = new ChronoMeter();
this.targetUps = targetUps;
@@ -59,9 +59,9 @@ public class DefaultGameEngine implements GameEngine {
private void init() {
log.info("Initializing game engine");
window.init();
screen.init();
chrono.init();
logic.init(window);
logic.init(screen);
}
private void loop() {
@@ -71,7 +71,7 @@ public class DefaultGameEngine implements GameEngine {
var accumulator = 0.0f;
var step = 1.0f / targetUps;
while (running && !window.shouldClose()) {
while (running && !screen.shouldClose()) {
dt = chrono.getElapsedTime();
accumulator += dt;
@@ -87,7 +87,7 @@ public class DefaultGameEngine implements GameEngine {
}
private void input() {
logic.input(window);
logic.input(screen);
}
private void update(float dt) {
@@ -95,8 +95,8 @@ public class DefaultGameEngine implements GameEngine {
}
private void render() {
window.update();
logic.render(window);
screen.update();
logic.render(screen);
}
private void cleanUp() {

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.engine.core.gl.object.material;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import com.bartlomiejpluta.base.engine.core.gl.object.texture.Texture;
@@ -22,7 +22,7 @@ public class Material implements Renderable {
}
@Override
public void render(Window window, Camera camera, ShaderManager shaderManager) {
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
shaderManager.setUniform(UniformName.UNI_OBJECT_COLOR, color);
if (texture != null) {

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.engine.core.gl.object.mesh;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.gc.Disposable;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
@@ -54,7 +54,7 @@ public class Mesh implements Renderable, Disposable {
}
@Override
public void render(Window window, Camera camera, ShaderManager shaderManager) {
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
glBindVertexArray(vaoId);
glEnableVertexAttribArray(0);

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.engine.core.gl.render;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import com.bartlomiejpluta.base.engine.core.gl.shader.constant.UniformName;
@@ -34,9 +34,9 @@ public class DefaultRenderer implements Renderer {
}
@Override
public void render(Window window, Camera camera, Renderable renderable) {
public void render(Screen screen, Camera camera, Renderable renderable) {
clear();
updateViewport(window);
updateViewport(screen);
shaderManager.selectShader("default").useSelectedShader();
@@ -44,8 +44,8 @@ public class DefaultRenderer implements Renderer {
// The camera render method must be invoked **before** each consecutive item renders
// due to the fact, that the method updates projection and view matrices, that
// are used to compute proper vertex coordinates of rendered objects (renderables).
camera.render(window, shaderManager);
renderable.render(window, camera, shaderManager);
camera.render(screen, shaderManager);
renderable.render(screen, camera, shaderManager);
shaderManager.detachCurrentShader();
}
@@ -54,10 +54,10 @@ public class DefaultRenderer implements Renderer {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
}
private void updateViewport(Window window) {
if (window.isResized()) {
glViewport(0, 0, window.getWidth(), window.getHeight());
window.setResized(false);
private void updateViewport(Screen screen) {
if (screen.isResized()) {
glViewport(0, 0, screen.getWidth(), screen.getHeight());
screen.setResized(false);
}
}

View File

@@ -1,11 +1,12 @@
package com.bartlomiejpluta.base.engine.core.gl.render;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
public interface Renderer extends Cleanable {
void init();
void render(Window window, Camera camera, Renderable renderable);
void render(Screen screen, Camera camera, Renderable renderable);
}

View File

@@ -2,7 +2,7 @@ package com.bartlomiejpluta.base.engine.logic;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.runner.GameRunner;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.engine.core.gl.object.texture.TextureManager;
import com.bartlomiejpluta.base.engine.core.gl.render.Renderer;
import com.bartlomiejpluta.base.engine.project.loader.ClassLoader;
@@ -48,10 +48,10 @@ public class DefaultGameLogic implements GameLogic {
@SneakyThrows
@Override
public void init(Window window) {
public void init(Screen screen) {
log.info("Initializing game logic");
renderer.init();
context.init(window, camera);
context.init(screen, camera);
project = projectLoader.loadProject();
var runnerClass = classLoader.<GameRunner>loadClass(project.getRunner());
@@ -61,8 +61,8 @@ public class DefaultGameLogic implements GameLogic {
}
@Override
public void input(Window window) {
context.input(window);
public void input(Screen screen) {
context.input(screen);
}
@Override
@@ -72,8 +72,8 @@ public class DefaultGameLogic implements GameLogic {
}
@Override
public void render(Window window) {
renderer.render(window, camera, context);
public void render(Screen screen) {
renderer.render(screen, camera, context);
}
@Override

View File

@@ -1,14 +1,14 @@
package com.bartlomiejpluta.base.engine.logic;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
public interface GameLogic extends Cleanable {
void init(Window window);
void init(Screen screen);
void input(Window window);
void input(Screen screen);
void update(float dt);
void render(Window window);
void render(Screen screen);
}

View File

@@ -5,7 +5,7 @@ import com.bartlomiejpluta.base.api.game.context.Context;
import com.bartlomiejpluta.base.api.game.entity.Entity;
import com.bartlomiejpluta.base.api.game.image.Image;
import com.bartlomiejpluta.base.api.game.map.handler.MapHandler;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
@@ -29,15 +29,15 @@ public class RenderableContext implements Context, Updatable, Renderable {
private final ClassLoader classLoader;
@Getter
private Window window;
private Screen screen;
private DefaultGameMap map;
private MapHandler mapHandler;
@Getter
private Camera camera;
public void init(Window window, Camera camera) {
this.window = window;
public void init(Screen screen, Camera camera) {
this.screen = screen;
this.camera = camera;
}
@@ -60,9 +60,9 @@ public class RenderableContext implements Context, Updatable, Renderable {
return imageManager.loadObject(imageUid);
}
public void input(Window window) {
public void input(Screen screen) {
if (mapHandler != null) {
mapHandler.input(window);
mapHandler.input(screen);
}
}
@@ -78,13 +78,13 @@ public class RenderableContext implements Context, Updatable, Renderable {
}
@Override
public void render(Window window, Camera camera, ShaderManager shaderManager) {
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
if (map != null) {
map.render(window, camera, shaderManager);
map.render(screen, camera, shaderManager);
}
if (mapHandler != null) {
mapHandler.postRender(window);
mapHandler.postRender(screen);
}
}
}

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.engine.ui;
import com.bartlomiejpluta.base.api.game.input.Key;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.engine.error.AppException;
import lombok.Getter;
import lombok.NonNull;
@@ -16,7 +16,7 @@ import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.system.MemoryUtil.NULL;
public class GLFWWindow implements Window {
public class GLFWScreen implements Screen {
private final String title;
private long windowHandle = -1;
@@ -34,7 +34,7 @@ public class GLFWWindow implements Window {
private final Vector2f size;
public GLFWWindow(@NonNull String title, int width, int height) {
public GLFWScreen(@NonNull String title, int width, int height) {
this.title = title;
this.width = width;
this.height = height;
@@ -74,11 +74,11 @@ public class GLFWWindow implements Window {
// Setup resize callback
glfwSetFramebufferSizeCallback(windowHandle, (window, width, height) -> {
GLFWWindow.this.width = width;
GLFWWindow.this.height = height;
GLFWWindow.this.resized = true;
GLFWWindow.this.size.x = width;
GLFWWindow.this.size.y = height;
GLFWScreen.this.width = width;
GLFWScreen.this.height = height;
GLFWScreen.this.resized = true;
GLFWScreen.this.size.x = width;
GLFWScreen.this.size.y = height;
});
// Setup a key callback. It will be called every time a key is pressed, repeated or released.
@@ -139,8 +139,8 @@ public class GLFWWindow implements Window {
return size;
}
public static Window create(String title, int width, int height) {
return new GLFWWindow(title, width, height);
public static Screen create(String title, int width, int height) {
return new GLFWScreen(title, width, height);
}
private static int glfwCode(Key key) {

View File

@@ -0,0 +1,11 @@
package com.bartlomiejpluta.base.engine.ui;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import org.springframework.stereotype.Component;
@Component
public class ScreenManager {
public Screen createScreen(String title, int width, int height) {
return GLFWScreen.create(title, width, height);
}
}

View File

@@ -1,11 +0,0 @@
package com.bartlomiejpluta.base.engine.ui;
import com.bartlomiejpluta.base.api.game.window.Window;
import org.springframework.stereotype.Component;
@Component
public class WindowManager {
public Window createWindow(String title, int width, int height) {
return GLFWWindow.create(title, width, height);
}
}

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.engine.world.animation;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import com.bartlomiejpluta.base.engine.core.gl.object.material.Material;
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
@@ -24,9 +24,9 @@ public abstract class AnimatedSprite extends Sprite {
public abstract Vector2fc[] getSpriteAnimationFramesPositions();
@Override
public void render(Window window, Camera camera, ShaderManager shaderManager) {
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
animate();
super.render(window, camera, shaderManager);
super.render(screen, camera, shaderManager);
}
private void animate() {

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.engine.world.camera;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import com.bartlomiejpluta.base.engine.core.gl.shader.constant.UniformName;
import com.bartlomiejpluta.base.engine.world.object.Model;
@@ -18,11 +18,11 @@ public class DefaultCamera extends Model implements Camera {
}
@Override
public void render(Window window, ShaderManager shaderManager) {
public void render(Screen screen, ShaderManager shaderManager) {
// Update matrices
projectionMatrix
.identity()
.setOrtho2D(0, window.getWidth(), window.getHeight(), 0);
.setOrtho2D(0, screen.getWidth(), screen.getHeight(), 0);
viewMatrix
.identity()

View File

@@ -5,7 +5,7 @@ import com.bartlomiejpluta.base.api.game.image.Image;
import com.bartlomiejpluta.base.api.game.map.layer.image.ImageLayer;
import com.bartlomiejpluta.base.api.game.map.layer.image.ImageLayerMode;
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import lombok.Getter;
import lombok.NonNull;
@@ -114,7 +114,7 @@ public class DefaultImageLayer implements ImageLayer {
}
@Override
public void render(Window window, Camera camera, ShaderManager shaderManager) {
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
if (image != null) {
if (parallax) {
var cameraPosition = camera.getPosition();
@@ -122,10 +122,10 @@ public class DefaultImageLayer implements ImageLayer {
}
if (mode == ImageLayerMode.FIT_SCREEN) {
image.setScale(window.getWidth() / imagePrimaryWidth, window.getHeight() / imagePrimaryHeight);
image.setScale(screen.getWidth() / imagePrimaryWidth, screen.getHeight() / imagePrimaryHeight);
}
image.render(window, camera, shaderManager);
image.render(screen, camera, shaderManager);
}
}
}

View File

@@ -8,7 +8,7 @@ import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.game.map.layer.object.PassageAbility;
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
import com.bartlomiejpluta.base.api.game.rule.Rule;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import lombok.Getter;
import lombok.NonNull;
@@ -150,11 +150,11 @@ public class DefaultObjectLayer implements ObjectLayer {
}
@Override
public void render(Window window, Camera camera, ShaderManager shaderManager) {
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
entities.sort(this::compareObjects);
for (var object : entities) {
object.render(window, camera, shaderManager);
object.render(screen, camera, shaderManager);
}
}

View File

@@ -3,7 +3,7 @@ package com.bartlomiejpluta.base.engine.world.map.layer.tile;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.map.layer.tile.TileLayer;
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import com.bartlomiejpluta.base.engine.world.tileset.model.Tile;
import com.bartlomiejpluta.base.engine.world.tileset.model.TileSet;
@@ -52,11 +52,11 @@ public class DefaultTileLayer implements TileLayer {
}
@Override
public void render(Window window, Camera camera, ShaderManager shaderManager) {
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
for (var row : layer) {
for (var tile : row) {
if (tile != null) {
tile.render(window, camera, shaderManager);
tile.render(screen, camera, shaderManager);
}
}
}

View File

@@ -10,7 +10,7 @@ import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.game.map.layer.object.PassageAbility;
import com.bartlomiejpluta.base.api.game.map.layer.tile.TileLayer;
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
@@ -77,9 +77,9 @@ public class DefaultGameMap implements Renderable, Updatable, GameMap {
}
@Override
public void render(Window window, Camera camera, ShaderManager shaderManager) {
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
for (var layer : layers) {
layer.render(window, camera, shaderManager);
layer.render(screen, camera, shaderManager);
}
}

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.engine.world.object;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.window.Window;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import com.bartlomiejpluta.base.engine.core.gl.object.material.Material;
@@ -22,9 +22,9 @@ public abstract class Sprite extends Model implements Renderable {
protected Material material;
@Override
public void render(Window window, Camera camera, ShaderManager shaderManager) {
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
shaderManager.setUniform(UniformName.UNI_VIEW_MODEL_MATRIX, camera.computeViewModelMatrix(getModelMatrix()));
material.render(window, camera, shaderManager);
mesh.render(window, camera, shaderManager);
material.render(screen, camera, shaderManager);
mesh.render(screen, camera, shaderManager);
}
}