Rename Window to Screen
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.api.game.camera;
|
package com.bartlomiejpluta.base.api.game.camera;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.window.Window;
|
import com.bartlomiejpluta.base.api.game.screen.Screen;
|
||||||
import com.bartlomiejpluta.base.api.internal.object.Placeable;
|
import com.bartlomiejpluta.base.api.internal.object.Placeable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import org.joml.Matrix4fc;
|
import org.joml.Matrix4fc;
|
||||||
@@ -8,5 +8,5 @@ import org.joml.Matrix4fc;
|
|||||||
public interface Camera extends Placeable {
|
public interface Camera extends Placeable {
|
||||||
Matrix4fc computeViewModelMatrix(Matrix4fc modelMatrix);
|
Matrix4fc computeViewModelMatrix(Matrix4fc modelMatrix);
|
||||||
|
|
||||||
void render(Window window, ShaderManager shaderManager);
|
void render(Screen screen, ShaderManager shaderManager);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ package com.bartlomiejpluta.base.api.game.context;
|
|||||||
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.game.image.Image;
|
import com.bartlomiejpluta.base.api.game.image.Image;
|
||||||
import com.bartlomiejpluta.base.api.game.window.Window;
|
import com.bartlomiejpluta.base.api.game.screen.Screen;
|
||||||
|
|
||||||
public interface Context {
|
public interface Context {
|
||||||
Window getWindow();
|
Screen getScreen();
|
||||||
|
|
||||||
Camera getCamera();
|
Camera getCamera();
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package com.bartlomiejpluta.base.api.game.entity;
|
|||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer;
|
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer;
|
||||||
import com.bartlomiejpluta.base.api.game.window.Window;
|
import com.bartlomiejpluta.base.api.game.screen.Screen;
|
||||||
import com.bartlomiejpluta.base.api.internal.object.Placeable;
|
import com.bartlomiejpluta.base.api.internal.object.Placeable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import org.joml.Matrix4fc;
|
import org.joml.Matrix4fc;
|
||||||
@@ -192,7 +192,7 @@ public abstract class EntityDelegate implements Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(Window window, Camera camera, ShaderManager shaderManager) {
|
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
|
||||||
entity.render(window, camera, shaderManager);
|
entity.render(screen, camera, shaderManager);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,16 +2,16 @@ package com.bartlomiejpluta.base.api.game.map.handler;
|
|||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.context.Context;
|
import com.bartlomiejpluta.base.api.game.context.Context;
|
||||||
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
|
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;
|
||||||
|
|
||||||
public interface MapHandler {
|
public interface MapHandler {
|
||||||
void onCreate(Context context, GameMap map);
|
void onCreate(Context context, GameMap map);
|
||||||
|
|
||||||
void onOpen(Context context, GameMap map);
|
void onOpen(Context context, GameMap map);
|
||||||
|
|
||||||
void input(Window window);
|
void input(Screen screen);
|
||||||
|
|
||||||
void update(Context context, GameMap map, float dt);
|
void update(Context context, GameMap map, float dt);
|
||||||
|
|
||||||
void postRender(Window window);
|
void postRender(Screen screen);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.bartlomiejpluta.base.api.game.window;
|
package com.bartlomiejpluta.base.api.game.screen;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.input.Key;
|
import com.bartlomiejpluta.base.api.game.input.Key;
|
||||||
import org.joml.Vector2fc;
|
import org.joml.Vector2fc;
|
||||||
|
|
||||||
public interface Window {
|
public interface Screen {
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
int getWidth();
|
int getWidth();
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.bartlomiejpluta.base.api.internal.render;
|
package com.bartlomiejpluta.base.api.internal.render;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.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;
|
||||||
|
|
||||||
public interface Renderable {
|
public interface Renderable {
|
||||||
void render(Window window, Camera camera, ShaderManager shaderManager);
|
void render(Screen screen, Camera camera, ShaderManager shaderManager);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package ${package};
|
|||||||
import com.bartlomiejpluta.base.api.game.context.Context;
|
import com.bartlomiejpluta.base.api.game.context.Context;
|
||||||
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
|
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
|
||||||
import com.bartlomiejpluta.base.api.game.map.handler.MapHandler;
|
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;
|
||||||
|
|
||||||
public class ${className} implements MapHandler {
|
public class ${className} implements MapHandler {
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ public class ${className} implements MapHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void input(Window window) {
|
public void input(Screen screen) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ public class ${className} implements MapHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void postRender(Window window) {
|
public void postRender(Screen screen) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.engine;
|
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.gc.OffHeapGarbageCollector;
|
||||||
import com.bartlomiejpluta.base.engine.logic.GameLogic;
|
import com.bartlomiejpluta.base.engine.logic.GameLogic;
|
||||||
import com.bartlomiejpluta.base.engine.thread.ThreadManager;
|
import com.bartlomiejpluta.base.engine.thread.ThreadManager;
|
||||||
import com.bartlomiejpluta.base.engine.time.ChronoMeter;
|
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 lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
@@ -16,20 +16,20 @@ import org.springframework.stereotype.Component;
|
|||||||
public class DefaultGameEngine implements GameEngine {
|
public class DefaultGameEngine implements GameEngine {
|
||||||
private static final String THREAD_NAME = "Game Main Thread";
|
private static final String THREAD_NAME = "Game Main Thread";
|
||||||
|
|
||||||
private final WindowManager windowManager;
|
private final ScreenManager screenManager;
|
||||||
private final ThreadManager threadManager;
|
private final ThreadManager threadManager;
|
||||||
private final GameLogic logic;
|
private final GameLogic logic;
|
||||||
private final OffHeapGarbageCollector garbageCollector;
|
private final OffHeapGarbageCollector garbageCollector;
|
||||||
|
|
||||||
private final Thread thread;
|
private final Thread thread;
|
||||||
private final Window window;
|
private final Screen screen;
|
||||||
private final ChronoMeter chrono;
|
private final ChronoMeter chrono;
|
||||||
private final int targetUps;
|
private final int targetUps;
|
||||||
|
|
||||||
private boolean running = false;
|
private boolean running = false;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public DefaultGameEngine(WindowManager windowManager,
|
public DefaultGameEngine(ScreenManager screenManager,
|
||||||
ThreadManager threadManager,
|
ThreadManager threadManager,
|
||||||
GameLogic logic,
|
GameLogic logic,
|
||||||
OffHeapGarbageCollector garbageCollector,
|
OffHeapGarbageCollector garbageCollector,
|
||||||
@@ -37,12 +37,12 @@ public class DefaultGameEngine implements GameEngine {
|
|||||||
@Value("${app.window.width}") int width,
|
@Value("${app.window.width}") int width,
|
||||||
@Value("${app.window.height}") int height,
|
@Value("${app.window.height}") int height,
|
||||||
@Value("${app.core.targetUps}") int targetUps) {
|
@Value("${app.core.targetUps}") int targetUps) {
|
||||||
this.windowManager = windowManager;
|
this.screenManager = screenManager;
|
||||||
this.threadManager = threadManager;
|
this.threadManager = threadManager;
|
||||||
this.logic = logic;
|
this.logic = logic;
|
||||||
this.garbageCollector = garbageCollector;
|
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.thread = threadManager.createThread(THREAD_NAME, this::run);
|
||||||
this.chrono = new ChronoMeter();
|
this.chrono = new ChronoMeter();
|
||||||
this.targetUps = targetUps;
|
this.targetUps = targetUps;
|
||||||
@@ -59,9 +59,9 @@ public class DefaultGameEngine implements GameEngine {
|
|||||||
|
|
||||||
private void init() {
|
private void init() {
|
||||||
log.info("Initializing game engine");
|
log.info("Initializing game engine");
|
||||||
window.init();
|
screen.init();
|
||||||
chrono.init();
|
chrono.init();
|
||||||
logic.init(window);
|
logic.init(screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loop() {
|
private void loop() {
|
||||||
@@ -71,7 +71,7 @@ public class DefaultGameEngine implements GameEngine {
|
|||||||
var accumulator = 0.0f;
|
var accumulator = 0.0f;
|
||||||
var step = 1.0f / targetUps;
|
var step = 1.0f / targetUps;
|
||||||
|
|
||||||
while (running && !window.shouldClose()) {
|
while (running && !screen.shouldClose()) {
|
||||||
dt = chrono.getElapsedTime();
|
dt = chrono.getElapsedTime();
|
||||||
accumulator += dt;
|
accumulator += dt;
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ public class DefaultGameEngine implements GameEngine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void input() {
|
private void input() {
|
||||||
logic.input(window);
|
logic.input(screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void update(float dt) {
|
private void update(float dt) {
|
||||||
@@ -95,8 +95,8 @@ public class DefaultGameEngine implements GameEngine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void render() {
|
private void render() {
|
||||||
window.update();
|
screen.update();
|
||||||
logic.render(window);
|
logic.render(screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cleanUp() {
|
private void cleanUp() {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.object.material;
|
package com.bartlomiejpluta.base.engine.core.gl.object.material;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.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.Renderable;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.object.texture.Texture;
|
import com.bartlomiejpluta.base.engine.core.gl.object.texture.Texture;
|
||||||
@@ -22,7 +22,7 @@ public class Material implements Renderable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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);
|
shaderManager.setUniform(UniformName.UNI_OBJECT_COLOR, color);
|
||||||
|
|
||||||
if (texture != null) {
|
if (texture != null) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.object.mesh;
|
package com.bartlomiejpluta.base.engine.core.gl.object.mesh;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.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.gc.Disposable;
|
import com.bartlomiejpluta.base.api.internal.gc.Disposable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
@@ -54,7 +54,7 @@ public class Mesh implements Renderable, Disposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(Window window, Camera camera, ShaderManager shaderManager) {
|
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
|
||||||
glBindVertexArray(vaoId);
|
glBindVertexArray(vaoId);
|
||||||
|
|
||||||
glEnableVertexAttribArray(0);
|
glEnableVertexAttribArray(0);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.render;
|
package com.bartlomiejpluta.base.engine.core.gl.render;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.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.Renderable;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.constant.UniformName;
|
import com.bartlomiejpluta.base.engine.core.gl.shader.constant.UniformName;
|
||||||
@@ -34,9 +34,9 @@ public class DefaultRenderer implements Renderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(Window window, Camera camera, Renderable renderable) {
|
public void render(Screen screen, Camera camera, Renderable renderable) {
|
||||||
clear();
|
clear();
|
||||||
updateViewport(window);
|
updateViewport(screen);
|
||||||
|
|
||||||
shaderManager.selectShader("default").useSelectedShader();
|
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
|
// 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
|
// due to the fact, that the method updates projection and view matrices, that
|
||||||
// are used to compute proper vertex coordinates of rendered objects (renderables).
|
// are used to compute proper vertex coordinates of rendered objects (renderables).
|
||||||
camera.render(window, shaderManager);
|
camera.render(screen, shaderManager);
|
||||||
renderable.render(window, camera, shaderManager);
|
renderable.render(screen, camera, shaderManager);
|
||||||
|
|
||||||
shaderManager.detachCurrentShader();
|
shaderManager.detachCurrentShader();
|
||||||
}
|
}
|
||||||
@@ -54,10 +54,10 @@ public class DefaultRenderer implements Renderer {
|
|||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateViewport(Window window) {
|
private void updateViewport(Screen screen) {
|
||||||
if (window.isResized()) {
|
if (screen.isResized()) {
|
||||||
glViewport(0, 0, window.getWidth(), window.getHeight());
|
glViewport(0, 0, screen.getWidth(), screen.getHeight());
|
||||||
window.setResized(false);
|
screen.setResized(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.render;
|
package com.bartlomiejpluta.base.engine.core.gl.render;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.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.gc.Cleanable;
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
|
|
||||||
public interface Renderer extends Cleanable {
|
public interface Renderer extends Cleanable {
|
||||||
void init();
|
void init();
|
||||||
void render(Window window, Camera camera, Renderable renderable);
|
|
||||||
|
void render(Screen screen, Camera camera, Renderable renderable);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package com.bartlomiejpluta.base.engine.logic;
|
|||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.api.game.runner.GameRunner;
|
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.object.texture.TextureManager;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.render.Renderer;
|
import com.bartlomiejpluta.base.engine.core.gl.render.Renderer;
|
||||||
import com.bartlomiejpluta.base.engine.project.loader.ClassLoader;
|
import com.bartlomiejpluta.base.engine.project.loader.ClassLoader;
|
||||||
@@ -48,10 +48,10 @@ public class DefaultGameLogic implements GameLogic {
|
|||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@Override
|
@Override
|
||||||
public void init(Window window) {
|
public void init(Screen screen) {
|
||||||
log.info("Initializing game logic");
|
log.info("Initializing game logic");
|
||||||
renderer.init();
|
renderer.init();
|
||||||
context.init(window, camera);
|
context.init(screen, camera);
|
||||||
|
|
||||||
project = projectLoader.loadProject();
|
project = projectLoader.loadProject();
|
||||||
var runnerClass = classLoader.<GameRunner>loadClass(project.getRunner());
|
var runnerClass = classLoader.<GameRunner>loadClass(project.getRunner());
|
||||||
@@ -61,8 +61,8 @@ public class DefaultGameLogic implements GameLogic {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void input(Window window) {
|
public void input(Screen screen) {
|
||||||
context.input(window);
|
context.input(screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -72,8 +72,8 @@ public class DefaultGameLogic implements GameLogic {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(Window window) {
|
public void render(Screen screen) {
|
||||||
renderer.render(window, camera, context);
|
renderer.render(screen, camera, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
package com.bartlomiejpluta.base.engine.logic;
|
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;
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
|
|
||||||
public interface GameLogic extends 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 update(float dt);
|
||||||
|
|
||||||
void render(Window window);
|
void render(Screen screen);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.game.image.Image;
|
import com.bartlomiejpluta.base.api.game.image.Image;
|
||||||
import com.bartlomiejpluta.base.api.game.map.handler.MapHandler;
|
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.logic.Updatable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
@@ -29,15 +29,15 @@ public class RenderableContext implements Context, Updatable, Renderable {
|
|||||||
private final ClassLoader classLoader;
|
private final ClassLoader classLoader;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private Window window;
|
private Screen screen;
|
||||||
private DefaultGameMap map;
|
private DefaultGameMap map;
|
||||||
private MapHandler mapHandler;
|
private MapHandler mapHandler;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private Camera camera;
|
private Camera camera;
|
||||||
|
|
||||||
public void init(Window window, Camera camera) {
|
public void init(Screen screen, Camera camera) {
|
||||||
this.window = window;
|
this.screen = screen;
|
||||||
this.camera = camera;
|
this.camera = camera;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,9 +60,9 @@ public class RenderableContext implements Context, Updatable, Renderable {
|
|||||||
return imageManager.loadObject(imageUid);
|
return imageManager.loadObject(imageUid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void input(Window window) {
|
public void input(Screen screen) {
|
||||||
if (mapHandler != null) {
|
if (mapHandler != null) {
|
||||||
mapHandler.input(window);
|
mapHandler.input(screen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,13 +78,13 @@ public class RenderableContext implements Context, Updatable, Renderable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(Window window, Camera camera, ShaderManager shaderManager) {
|
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
|
||||||
if (map != null) {
|
if (map != null) {
|
||||||
map.render(window, camera, shaderManager);
|
map.render(screen, camera, shaderManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mapHandler != null) {
|
if (mapHandler != null) {
|
||||||
mapHandler.postRender(window);
|
mapHandler.postRender(screen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.ui;
|
package com.bartlomiejpluta.base.engine.ui;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.input.Key;
|
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 com.bartlomiejpluta.base.engine.error.AppException;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
@@ -16,7 +16,7 @@ import static org.lwjgl.glfw.GLFW.*;
|
|||||||
import static org.lwjgl.opengl.GL11.*;
|
import static org.lwjgl.opengl.GL11.*;
|
||||||
import static org.lwjgl.system.MemoryUtil.NULL;
|
import static org.lwjgl.system.MemoryUtil.NULL;
|
||||||
|
|
||||||
public class GLFWWindow implements Window {
|
public class GLFWScreen implements Screen {
|
||||||
private final String title;
|
private final String title;
|
||||||
private long windowHandle = -1;
|
private long windowHandle = -1;
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ public class GLFWWindow implements Window {
|
|||||||
|
|
||||||
private final Vector2f size;
|
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.title = title;
|
||||||
this.width = width;
|
this.width = width;
|
||||||
this.height = height;
|
this.height = height;
|
||||||
@@ -74,11 +74,11 @@ public class GLFWWindow implements Window {
|
|||||||
|
|
||||||
// Setup resize callback
|
// Setup resize callback
|
||||||
glfwSetFramebufferSizeCallback(windowHandle, (window, width, height) -> {
|
glfwSetFramebufferSizeCallback(windowHandle, (window, width, height) -> {
|
||||||
GLFWWindow.this.width = width;
|
GLFWScreen.this.width = width;
|
||||||
GLFWWindow.this.height = height;
|
GLFWScreen.this.height = height;
|
||||||
GLFWWindow.this.resized = true;
|
GLFWScreen.this.resized = true;
|
||||||
GLFWWindow.this.size.x = width;
|
GLFWScreen.this.size.x = width;
|
||||||
GLFWWindow.this.size.y = height;
|
GLFWScreen.this.size.y = height;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Setup a key callback. It will be called every time a key is pressed, repeated or released.
|
// 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;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Window create(String title, int width, int height) {
|
public static Screen create(String title, int width, int height) {
|
||||||
return new GLFWWindow(title, width, height);
|
return new GLFWScreen(title, width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int glfwCode(Key key) {
|
private static int glfwCode(Key key) {
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.animation;
|
package com.bartlomiejpluta.base.engine.world.animation;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.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.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.object.material.Material;
|
import com.bartlomiejpluta.base.engine.core.gl.object.material.Material;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
||||||
@@ -24,9 +24,9 @@ public abstract class AnimatedSprite extends Sprite {
|
|||||||
public abstract Vector2fc[] getSpriteAnimationFramesPositions();
|
public abstract Vector2fc[] getSpriteAnimationFramesPositions();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(Window window, Camera camera, ShaderManager shaderManager) {
|
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
|
||||||
animate();
|
animate();
|
||||||
super.render(window, camera, shaderManager);
|
super.render(screen, camera, shaderManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void animate() {
|
private void animate() {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.camera;
|
package com.bartlomiejpluta.base.engine.world.camera;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.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.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.constant.UniformName;
|
import com.bartlomiejpluta.base.engine.core.gl.shader.constant.UniformName;
|
||||||
import com.bartlomiejpluta.base.engine.world.object.Model;
|
import com.bartlomiejpluta.base.engine.world.object.Model;
|
||||||
@@ -18,11 +18,11 @@ public class DefaultCamera extends Model implements Camera {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(Window window, ShaderManager shaderManager) {
|
public void render(Screen screen, ShaderManager shaderManager) {
|
||||||
// Update matrices
|
// Update matrices
|
||||||
projectionMatrix
|
projectionMatrix
|
||||||
.identity()
|
.identity()
|
||||||
.setOrtho2D(0, window.getWidth(), window.getHeight(), 0);
|
.setOrtho2D(0, screen.getWidth(), screen.getHeight(), 0);
|
||||||
|
|
||||||
viewMatrix
|
viewMatrix
|
||||||
.identity()
|
.identity()
|
||||||
|
|||||||
@@ -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.ImageLayer;
|
||||||
import com.bartlomiejpluta.base.api.game.map.layer.image.ImageLayerMode;
|
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.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.api.internal.render.ShaderManager;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
@@ -114,7 +114,7 @@ public class DefaultImageLayer implements ImageLayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(Window window, Camera camera, ShaderManager shaderManager) {
|
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
|
||||||
if (image != null) {
|
if (image != null) {
|
||||||
if (parallax) {
|
if (parallax) {
|
||||||
var cameraPosition = camera.getPosition();
|
var cameraPosition = camera.getPosition();
|
||||||
@@ -122,10 +122,10 @@ public class DefaultImageLayer implements ImageLayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mode == ImageLayerMode.FIT_SCREEN) {
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.layer.object.PassageAbility;
|
||||||
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
|
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
|
||||||
import com.bartlomiejpluta.base.api.game.rule.Rule;
|
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 com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
@@ -150,11 +150,11 @@ public class DefaultObjectLayer implements ObjectLayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(Window window, Camera camera, ShaderManager shaderManager) {
|
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
|
||||||
entities.sort(this::compareObjects);
|
entities.sort(this::compareObjects);
|
||||||
|
|
||||||
for (var object : entities) {
|
for (var object : entities) {
|
||||||
object.render(window, camera, shaderManager);
|
object.render(screen, camera, shaderManager);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.api.game.map.layer.tile.TileLayer;
|
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.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.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.tileset.model.Tile;
|
import com.bartlomiejpluta.base.engine.world.tileset.model.Tile;
|
||||||
import com.bartlomiejpluta.base.engine.world.tileset.model.TileSet;
|
import com.bartlomiejpluta.base.engine.world.tileset.model.TileSet;
|
||||||
@@ -52,11 +52,11 @@ public class DefaultTileLayer implements TileLayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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 row : layer) {
|
||||||
for (var tile : row) {
|
for (var tile : row) {
|
||||||
if (tile != null) {
|
if (tile != null) {
|
||||||
tile.render(window, camera, shaderManager);
|
tile.render(screen, camera, shaderManager);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.object.PassageAbility;
|
||||||
import com.bartlomiejpluta.base.api.game.map.layer.tile.TileLayer;
|
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.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.logic.Updatable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
@@ -77,9 +77,9 @@ public class DefaultGameMap implements Renderable, Updatable, GameMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(Window window, Camera camera, ShaderManager shaderManager) {
|
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
|
||||||
for (var layer : layers) {
|
for (var layer : layers) {
|
||||||
layer.render(window, camera, shaderManager);
|
layer.render(screen, camera, shaderManager);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.object;
|
package com.bartlomiejpluta.base.engine.world.object;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.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.Renderable;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
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.material.Material;
|
||||||
@@ -22,9 +22,9 @@ public abstract class Sprite extends Model implements Renderable {
|
|||||||
protected Material material;
|
protected Material material;
|
||||||
|
|
||||||
@Override
|
@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()));
|
shaderManager.setUniform(UniformName.UNI_VIEW_MODEL_MATRIX, camera.computeViewModelMatrix(getModelMatrix()));
|
||||||
material.render(window, camera, shaderManager);
|
material.render(screen, camera, shaderManager);
|
||||||
mesh.render(window, camera, shaderManager);
|
mesh.render(screen, camera, shaderManager);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user