Extract some interfaces from :engine to :api
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.api.context;
|
package com.bartlomiejpluta.base.api.game.context;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
|
|
||||||
public interface Context {
|
public interface Context {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.bartlomiejpluta.base.api.entity;
|
package com.bartlomiejpluta.base.api.game.entity;
|
||||||
|
|
||||||
import org.joml.Vector2i;
|
import org.joml.Vector2i;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.bartlomiejpluta.base.api.entity;
|
package com.bartlomiejpluta.base.api.game.entity;
|
||||||
|
|
||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
import org.joml.Vector2i;
|
import org.joml.Vector2i;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.bartlomiejpluta.base.api.entity;
|
package com.bartlomiejpluta.base.api.game.entity;
|
||||||
|
|
||||||
|
|
||||||
import org.joml.Vector2i;
|
import org.joml.Vector2i;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.bartlomiejpluta.base.api.input;
|
package com.bartlomiejpluta.base.api.game.input;
|
||||||
|
|
||||||
public enum Key {
|
public enum Key {
|
||||||
KEY_SPACE,
|
KEY_SPACE,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.bartlomiejpluta.base.api.input;
|
package com.bartlomiejpluta.base.api.game.input;
|
||||||
|
|
||||||
public interface Keyboard {
|
public interface Keyboard {
|
||||||
boolean isKeyPressed(Key key);
|
boolean isKeyPressed(Key key);
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.api.map;
|
package com.bartlomiejpluta.base.api.game.map;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.entity.Movement;
|
import com.bartlomiejpluta.base.api.game.entity.Movement;
|
||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
|
|
||||||
public interface GameMap {
|
public interface GameMap {
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.api.map;
|
package com.bartlomiejpluta.base.api.game.map;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.game.context.Context;
|
||||||
import com.bartlomiejpluta.base.api.input.Keyboard;
|
import com.bartlomiejpluta.base.api.game.input.Keyboard;
|
||||||
|
|
||||||
public interface MapHandler {
|
public interface MapHandler {
|
||||||
void init(Context context, GameMap map);
|
void init(Context context, GameMap map);
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.bartlomiejpluta.base.api.map;
|
package com.bartlomiejpluta.base.api.game.map;
|
||||||
|
|
||||||
public enum PassageAbility {
|
public enum PassageAbility {
|
||||||
BLOCK,
|
BLOCK,
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.bartlomiejpluta.base.api.game.runner;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.game.context.Context;
|
||||||
|
|
||||||
|
public interface GameRunner {
|
||||||
|
void init(Context context);
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.bartlomiejpluta.base.api.internal.camera;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.object.Placeable;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
|
public interface Camera extends Placeable {
|
||||||
|
Matrix4f computeViewModelMatrix(Matrix4f modelMatrix);
|
||||||
|
|
||||||
|
void render(Window window, ShaderManager shaderManager);
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.bartlomiejpluta.base.engine.gc;
|
package com.bartlomiejpluta.base.api.internal.gc;
|
||||||
|
|
||||||
public interface Cleanable {
|
public interface Cleanable {
|
||||||
void cleanUp();
|
void cleanUp();
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.bartlomiejpluta.base.engine.gc;
|
package com.bartlomiejpluta.base.api.internal.gc;
|
||||||
|
|
||||||
public interface Disposable {
|
public interface Disposable {
|
||||||
void dispose();
|
void dispose();
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.bartlomiejpluta.base.engine.logic;
|
package com.bartlomiejpluta.base.api.internal.logic;
|
||||||
|
|
||||||
public interface Updatable {
|
public interface Updatable {
|
||||||
void update(float dt);
|
void update(float dt);
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.bartlomiejpluta.base.api.internal.object;
|
||||||
|
|
||||||
|
import org.joml.Matrix4f;
|
||||||
|
import org.joml.Vector2f;
|
||||||
|
|
||||||
|
public interface Placeable {
|
||||||
|
Vector2f getPosition();
|
||||||
|
void setPosition(float x, float y);
|
||||||
|
void setPosition(Vector2f position);
|
||||||
|
void movePosition(float x, float y);
|
||||||
|
void movePosition(Vector2f position);
|
||||||
|
|
||||||
|
float getRotation();
|
||||||
|
void setRotation(float rotation);
|
||||||
|
void moveRotation(float rotation);
|
||||||
|
|
||||||
|
float getScaleX();
|
||||||
|
void setScaleX(float scale);
|
||||||
|
|
||||||
|
float getScaleY();
|
||||||
|
void setScaleY(float scale);
|
||||||
|
|
||||||
|
void setScale(float scale);
|
||||||
|
void setScale(float scaleX, float scaleY);
|
||||||
|
|
||||||
|
Matrix4f getModelMatrix();
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.bartlomiejpluta.base.api.internal.render;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
|
|
||||||
|
public interface Renderable {
|
||||||
|
void render(Window window, Camera camera, ShaderManager shaderManager);
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.shader.manager;
|
package com.bartlomiejpluta.base.api.internal.render;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.uniform.Uniform;
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.engine.gc.Cleanable;
|
|
||||||
import org.joml.*;
|
import org.joml.*;
|
||||||
|
|
||||||
public interface ShaderManager extends Cleanable {
|
public interface ShaderManager extends Cleanable {
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package com.bartlomiejpluta.base.api.internal.render;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.gc.Disposable;
|
||||||
|
import org.joml.*;
|
||||||
|
|
||||||
|
public interface ShaderProgram extends Disposable {
|
||||||
|
void createUniform(String uniformName);
|
||||||
|
|
||||||
|
void createUniform(String uniformName, Uniform uniform);
|
||||||
|
|
||||||
|
void createUniforms(String uniformName, int size);
|
||||||
|
|
||||||
|
void createUniforms(String uniformName, int size, Uniform uniform);
|
||||||
|
|
||||||
|
void setUniform(String uniformName, int value);
|
||||||
|
|
||||||
|
void setUniform(String uniformName, boolean value);
|
||||||
|
|
||||||
|
void setUniform(String uniformName, float value);
|
||||||
|
|
||||||
|
void setUniform(String uniformName, Vector2f value);
|
||||||
|
|
||||||
|
void setUniform(String uniformName, Vector3f value);
|
||||||
|
|
||||||
|
void setUniform(String uniformName, Vector4f value);
|
||||||
|
|
||||||
|
void setUniform(String uniformName, Matrix3f value);
|
||||||
|
|
||||||
|
void setUniform(String uniformName, Matrix4f value);
|
||||||
|
|
||||||
|
void setUniform(String uniformName, Uniform uniform);
|
||||||
|
|
||||||
|
void setUniform(String uniformName, int index, Uniform uniform);
|
||||||
|
|
||||||
|
void setUniforms(String uniformName, Uniform[] uniforms);
|
||||||
|
|
||||||
|
void use();
|
||||||
|
|
||||||
|
void detach();
|
||||||
|
}
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.shader.uniform;
|
package com.bartlomiejpluta.base.api.internal.render;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.program.ShaderProgram;
|
|
||||||
|
|
||||||
public interface Uniform {
|
public interface Uniform {
|
||||||
void createUniform(ShaderProgram shaderProgram, String uniformName);
|
void createUniform(ShaderProgram shaderProgram, String uniformName);
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.bartlomiejpluta.base.api.internal.window;
|
||||||
|
|
||||||
|
import org.joml.Vector2f;
|
||||||
|
|
||||||
|
public interface Window {
|
||||||
|
void init();
|
||||||
|
|
||||||
|
int getWidth();
|
||||||
|
|
||||||
|
int getHeight();
|
||||||
|
|
||||||
|
Vector2f getSize();
|
||||||
|
|
||||||
|
boolean isResized();
|
||||||
|
|
||||||
|
void setResized(boolean resized);
|
||||||
|
|
||||||
|
boolean shouldClose();
|
||||||
|
|
||||||
|
boolean isKeyPressed(int keyCode);
|
||||||
|
|
||||||
|
void update();
|
||||||
|
|
||||||
|
void clear(float r, float g, float b, float alpha);
|
||||||
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package com.bartlomiejpluta.base.api.runner;
|
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
|
||||||
|
|
||||||
public interface GameRunner {
|
|
||||||
void init(Context context);
|
|
||||||
}
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.engine;
|
package com.bartlomiejpluta.base.engine.core.engine;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
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.Window;
|
|
||||||
import com.bartlomiejpluta.base.engine.ui.WindowManager;
|
import com.bartlomiejpluta.base.engine.ui.WindowManager;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.object.material;
|
package com.bartlomiejpluta.base.engine.core.gl.object.material;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.object.texture.Texture;
|
import com.bartlomiejpluta.base.engine.core.gl.object.texture.Texture;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.render.Renderable;
|
|
||||||
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.core.gl.shader.manager.ShaderManager;
|
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
import org.joml.Vector4f;
|
import org.joml.Vector4f;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.object.mesh;
|
package com.bartlomiejpluta.base.engine.core.gl.object.mesh;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.render.Renderable;
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.manager.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.gc.Disposable;
|
||||||
import com.bartlomiejpluta.base.engine.gc.Disposable;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
import org.lwjgl.opengl.GL15;
|
import org.lwjgl.opengl.GL15;
|
||||||
import org.lwjgl.system.MemoryStack;
|
import org.lwjgl.system.MemoryStack;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.object.texture;
|
package com.bartlomiejpluta.base.engine.core.gl.object.texture;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.gc.Disposable;
|
||||||
import com.bartlomiejpluta.base.engine.error.AppException;
|
import com.bartlomiejpluta.base.engine.error.AppException;
|
||||||
import com.bartlomiejpluta.base.engine.gc.Disposable;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
import org.lwjgl.system.MemoryStack;
|
import org.lwjgl.system.MemoryStack;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.object.texture;
|
package com.bartlomiejpluta.base.engine.core.gl.object.texture;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.gc.Cleanable;
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
|
|
||||||
public interface TextureManager extends Cleanable {
|
public interface TextureManager extends Cleanable {
|
||||||
Texture loadTexture(String textureFileName);
|
Texture loadTexture(String textureFileName);
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.render;
|
package com.bartlomiejpluta.base.engine.core.gl.render;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
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.core.gl.shader.manager.ShaderManager;
|
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.render;
|
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.manager.ShaderManager;
|
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
|
||||||
|
|
||||||
public interface Renderable {
|
|
||||||
void render(Window window, Camera camera, ShaderManager shaderManager);
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.render;
|
package com.bartlomiejpluta.base.engine.core.gl.render;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.gc.Cleanable;
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
|
|
||||||
public interface Renderer extends Cleanable {
|
public interface Renderer extends Cleanable {
|
||||||
void init();
|
void init();
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.shader.manager;
|
package com.bartlomiejpluta.base.engine.core.gl.shader.manager;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.program.ShaderProgram;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.uniform.Uniform;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderProgram;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.Uniform;
|
||||||
|
import com.bartlomiejpluta.base.engine.core.gl.shader.program.GLShaderProgram;
|
||||||
import com.bartlomiejpluta.base.engine.util.res.ResourcesManager;
|
import com.bartlomiejpluta.base.engine.util.res.ResourcesManager;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -25,7 +27,7 @@ public class DefaultShaderManager implements ShaderManager {
|
|||||||
log.info("Creating {} shader", programName);
|
log.info("Creating {} shader", programName);
|
||||||
var vertexShaderCode = resourcesManager.loadResourceAsString(vertexShaderFilename);
|
var vertexShaderCode = resourcesManager.loadResourceAsString(vertexShaderFilename);
|
||||||
var fragmentShaderCode = resourcesManager.loadResourceAsString(fragmentShaderFilename);
|
var fragmentShaderCode = resourcesManager.loadResourceAsString(fragmentShaderFilename);
|
||||||
var program = ShaderProgram.compile(vertexShaderCode, fragmentShaderCode);
|
var program = GLShaderProgram.compile(vertexShaderCode, fragmentShaderCode);
|
||||||
|
|
||||||
shaders.put(programName, program);
|
shaders.put(programName, program);
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.bartlomiejpluta.base.engine.core.gl.shader.program;
|
package com.bartlomiejpluta.base.engine.core.gl.shader.program;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.uniform.Uniform;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderProgram;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.Uniform;
|
||||||
import com.bartlomiejpluta.base.engine.error.AppException;
|
import com.bartlomiejpluta.base.engine.error.AppException;
|
||||||
import com.bartlomiejpluta.base.engine.gc.Disposable;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.joml.*;
|
import org.joml.*;
|
||||||
import org.lwjgl.system.MemoryStack;
|
import org.lwjgl.system.MemoryStack;
|
||||||
@@ -14,16 +14,16 @@ import static java.lang.String.format;
|
|||||||
import static org.lwjgl.opengl.GL20.*;
|
import static org.lwjgl.opengl.GL20.*;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ShaderProgram implements Disposable {
|
public class GLShaderProgram implements ShaderProgram {
|
||||||
private final int programId;
|
private final int programId;
|
||||||
private final int vertexShaderId;
|
private final int vertexShaderId;
|
||||||
private final int fragmentShaderId;
|
private final int fragmentShaderId;
|
||||||
private final Map<String, Integer> uniforms = new HashMap<>();
|
private final Map<String, Integer> uniforms = new HashMap<>();
|
||||||
|
|
||||||
private ShaderProgram(String vertexShaderCode, String fragmentShaderCode) {
|
private GLShaderProgram(String vertexShaderCode, String fragmentShaderCode) {
|
||||||
this.programId = glCreateProgram();
|
this.programId = glCreateProgram();
|
||||||
|
|
||||||
if(this.programId == 0) {
|
if (this.programId == 0) {
|
||||||
throw new AppException("Could not create shader program");
|
throw new AppException("Could not create shader program");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,14 +35,14 @@ public class ShaderProgram implements Disposable {
|
|||||||
|
|
||||||
private int createShader(String shaderCode, int shaderType) {
|
private int createShader(String shaderCode, int shaderType) {
|
||||||
int shaderId = glCreateShader(shaderType);
|
int shaderId = glCreateShader(shaderType);
|
||||||
if(shaderId == 0) {
|
if (shaderId == 0) {
|
||||||
throw new AppException("Could not create shader of type: %s", shaderType);
|
throw new AppException("Could not create shader of type: %s", shaderType);
|
||||||
}
|
}
|
||||||
|
|
||||||
glShaderSource(shaderId, shaderCode);
|
glShaderSource(shaderId, shaderCode);
|
||||||
glCompileShader(shaderId);
|
glCompileShader(shaderId);
|
||||||
|
|
||||||
if(glGetShaderi(shaderId, GL_COMPILE_STATUS) == 0) {
|
if (glGetShaderi(shaderId, GL_COMPILE_STATUS) == 0) {
|
||||||
throw new AppException("Could not compile shader code: %s", glGetShaderInfoLog(shaderId, 1024));
|
throw new AppException("Could not compile shader code: %s", glGetShaderInfoLog(shaderId, 1024));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,109 +53,126 @@ public class ShaderProgram implements Disposable {
|
|||||||
|
|
||||||
private void linkProgram() {
|
private void linkProgram() {
|
||||||
glLinkProgram(programId);
|
glLinkProgram(programId);
|
||||||
if(glGetProgrami(programId, GL_LINK_STATUS) == 0) {
|
if (glGetProgrami(programId, GL_LINK_STATUS) == 0) {
|
||||||
throw new AppException("Could not link shader program: %s", glGetProgramInfoLog(programId, 1024));
|
throw new AppException("Could not link shader program: %s", glGetProgramInfoLog(programId, 1024));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(vertexShaderId != 0) {
|
if (vertexShaderId != 0) {
|
||||||
glDetachShader(programId, vertexShaderId);
|
glDetachShader(programId, vertexShaderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(fragmentShaderId != 0) {
|
if (fragmentShaderId != 0) {
|
||||||
glDetachShader(programId, fragmentShaderId);
|
glDetachShader(programId, fragmentShaderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
glValidateProgram(programId);
|
glValidateProgram(programId);
|
||||||
if(glGetProgrami(programId, GL_VALIDATE_STATUS) == 0) {
|
if (glGetProgrami(programId, GL_VALIDATE_STATUS) == 0) {
|
||||||
log.warn("Program validation failed: {}", glGetProgramInfoLog(programId, 1024));
|
log.warn("Program validation failed: {}", glGetProgramInfoLog(programId, 1024));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void createUniform(String uniformName) {
|
public void createUniform(String uniformName) {
|
||||||
int location = glGetUniformLocation(programId, uniformName);
|
int location = glGetUniformLocation(programId, uniformName);
|
||||||
|
|
||||||
if(location < 0) {
|
if (location < 0) {
|
||||||
throw new AppException("Could not find uniform: %s", uniformName);
|
throw new AppException("Could not find uniform: %s", uniformName);
|
||||||
}
|
}
|
||||||
|
|
||||||
uniforms.put(uniformName, location);
|
uniforms.put(uniformName, location);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void createUniform(String uniformName, Uniform uniform) {
|
public void createUniform(String uniformName, Uniform uniform) {
|
||||||
uniform.createUniform(this, uniformName);
|
uniform.createUniform(this, uniformName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void createUniforms(String uniformName, int size) {
|
public void createUniforms(String uniformName, int size) {
|
||||||
for(int i=0; i<size; ++i) {
|
for (int i = 0; i < size; ++i) {
|
||||||
createUniform(format("%s[%d]", uniformName, i));
|
createUniform(format("%s[%d]", uniformName, i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void createUniforms(String uniformName, int size, Uniform uniform) {
|
public void createUniforms(String uniformName, int size, Uniform uniform) {
|
||||||
for(int i=0; i<size; ++i) {
|
for (int i = 0; i < size; ++i) {
|
||||||
createUniform(format("%s[%d]", uniformName, i), uniform);
|
createUniform(format("%s[%d]", uniformName, i), uniform);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setUniform(String uniformName, int value) {
|
public void setUniform(String uniformName, int value) {
|
||||||
glUniform1i(uniforms.get(uniformName), value);
|
glUniform1i(uniforms.get(uniformName), value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setUniform(String uniformName, boolean value) {
|
public void setUniform(String uniformName, boolean value) {
|
||||||
glUniform1i(uniforms.get(uniformName), value ? 1 : 0);
|
glUniform1i(uniforms.get(uniformName), value ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setUniform(String uniformName, float value) {
|
public void setUniform(String uniformName, float value) {
|
||||||
glUniform1f(uniforms.get(uniformName), value);
|
glUniform1f(uniforms.get(uniformName), value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setUniform(String uniformName, Vector2f value) {
|
public void setUniform(String uniformName, Vector2f value) {
|
||||||
glUniform2f(uniforms.get(uniformName), value.x, value.y);
|
glUniform2f(uniforms.get(uniformName), value.x, value.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setUniform(String uniformName, Vector3f value) {
|
public void setUniform(String uniformName, Vector3f value) {
|
||||||
glUniform3f(uniforms.get(uniformName), value.x, value.y, value.z);
|
glUniform3f(uniforms.get(uniformName), value.x, value.y, value.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setUniform(String uniformName, Vector4f value) {
|
public void setUniform(String uniformName, Vector4f value) {
|
||||||
glUniform4f(uniforms.get(uniformName), value.x, value.y, value.z, value.w);
|
glUniform4f(uniforms.get(uniformName), value.x, value.y, value.z, value.w);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setUniform(String uniformName, Matrix3f value) {
|
public void setUniform(String uniformName, Matrix3f value) {
|
||||||
try(var stack = MemoryStack.stackPush()) {
|
try (var stack = MemoryStack.stackPush()) {
|
||||||
var buffer = stack.mallocFloat(3 * 3);
|
var buffer = stack.mallocFloat(3 * 3);
|
||||||
value.get(buffer);
|
value.get(buffer);
|
||||||
glUniformMatrix4fv(uniforms.get(uniformName), false, buffer);
|
glUniformMatrix4fv(uniforms.get(uniformName), false, buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setUniform(String uniformName, Matrix4f value) {
|
public void setUniform(String uniformName, Matrix4f value) {
|
||||||
try(var stack = MemoryStack.stackPush()) {
|
try (var stack = MemoryStack.stackPush()) {
|
||||||
var buffer = stack.mallocFloat(4 * 4);
|
var buffer = stack.mallocFloat(4 * 4);
|
||||||
value.get(buffer);
|
value.get(buffer);
|
||||||
glUniformMatrix4fv(uniforms.get(uniformName), false, buffer);
|
glUniformMatrix4fv(uniforms.get(uniformName), false, buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setUniform(String uniformName, Uniform uniform) {
|
public void setUniform(String uniformName, Uniform uniform) {
|
||||||
uniform.setUniform(this, uniformName);
|
uniform.setUniform(this, uniformName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setUniform(String uniformName, int index, Uniform uniform) {
|
public void setUniform(String uniformName, int index, Uniform uniform) {
|
||||||
setUniform(format("%s[%d]", uniformName, index), uniform);
|
setUniform(format("%s[%d]", uniformName, index), uniform);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setUniforms(String uniformName, Uniform[] uniforms) {
|
public void setUniforms(String uniformName, Uniform[] uniforms) {
|
||||||
var size = uniforms != null ? uniforms.length : 0;
|
var size = uniforms != null ? uniforms.length : 0;
|
||||||
for(int i=0; i<size; ++i) {
|
for (int i = 0; i < size; ++i) {
|
||||||
setUniform(format("%s[%d]", uniformName, i), uniforms[i]);
|
setUniform(format("%s[%d]", uniformName, i), uniforms[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void use() {
|
public void use() {
|
||||||
glUseProgram(programId);
|
glUseProgram(programId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void detach() {
|
public void detach() {
|
||||||
glUseProgram(0);
|
glUseProgram(0);
|
||||||
}
|
}
|
||||||
@@ -164,12 +181,12 @@ public class ShaderProgram implements Disposable {
|
|||||||
public void dispose() {
|
public void dispose() {
|
||||||
glUseProgram(0);
|
glUseProgram(0);
|
||||||
|
|
||||||
if(programId != 0) {
|
if (programId != 0) {
|
||||||
glDeleteProgram(programId);
|
glDeleteProgram(programId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ShaderProgram compile(String vertexShaderCode, String fragmentShaderCode) {
|
public static ShaderProgram compile(String vertexShaderCode, String fragmentShaderCode) {
|
||||||
return new ShaderProgram(vertexShaderCode, fragmentShaderCode);
|
return new GLShaderProgram(vertexShaderCode, fragmentShaderCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.engine.gc;
|
package com.bartlomiejpluta.base.engine.gc;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.bartlomiejpluta.base.engine.input;
|
package com.bartlomiejpluta.base.engine.input;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.input.Key;
|
import com.bartlomiejpluta.base.api.game.input.Key;
|
||||||
import com.bartlomiejpluta.base.api.input.Keyboard;
|
import com.bartlomiejpluta.base.api.game.input.Keyboard;
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
import static org.lwjgl.glfw.GLFW.*;
|
import static org.lwjgl.glfw.GLFW.*;
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
package com.bartlomiejpluta.base.engine.logic;
|
package com.bartlomiejpluta.base.engine.logic;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.runner.GameRunner;
|
import com.bartlomiejpluta.base.api.game.runner.GameRunner;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
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;
|
||||||
import com.bartlomiejpluta.base.engine.project.loader.ProjectLoader;
|
import com.bartlomiejpluta.base.engine.project.loader.ProjectLoader;
|
||||||
import com.bartlomiejpluta.base.engine.project.model.Project;
|
import com.bartlomiejpluta.base.engine.project.model.Project;
|
||||||
import com.bartlomiejpluta.base.engine.project.model.RenderableContext;
|
import com.bartlomiejpluta.base.engine.project.model.RenderableContext;
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
|
||||||
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
||||||
import com.bartlomiejpluta.base.engine.util.profiling.fps.FPSMonitor;
|
import com.bartlomiejpluta.base.engine.util.profiling.fps.FPSMonitor;
|
||||||
import com.bartlomiejpluta.base.engine.util.profiling.time.TimeProfilerService;
|
import com.bartlomiejpluta.base.engine.util.profiling.time.TimeProfilerService;
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
import com.bartlomiejpluta.base.engine.world.camera.DefaultCamera;
|
||||||
import com.bartlomiejpluta.base.engine.world.entity.manager.EntityManager;
|
import com.bartlomiejpluta.base.engine.world.entity.manager.EntityManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.manager.ImageManager;
|
import com.bartlomiejpluta.base.engine.world.image.manager.ImageManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.manager.MapManager;
|
import com.bartlomiejpluta.base.engine.world.map.manager.MapManager;
|
||||||
@@ -40,7 +41,7 @@ public class DefaultGameLogic implements GameLogic {
|
|||||||
|
|
||||||
private final RenderableContext context;
|
private final RenderableContext context;
|
||||||
|
|
||||||
private final Camera camera = new Camera();
|
private final Camera camera = new DefaultCamera();
|
||||||
|
|
||||||
private Project project;
|
private Project project;
|
||||||
private GameRunner runner;
|
private GameRunner runner;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.logic;
|
package com.bartlomiejpluta.base.engine.logic;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.gc.Cleanable;
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
|
|
||||||
public interface GameLogic extends Cleanable {
|
public interface GameLogic extends Cleanable {
|
||||||
void init(Window window);
|
void init(Window window);
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
package com.bartlomiejpluta.base.engine.project.model;
|
package com.bartlomiejpluta.base.engine.project.model;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.game.context.Context;
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.input.Keyboard;
|
import com.bartlomiejpluta.base.api.game.input.Keyboard;
|
||||||
import com.bartlomiejpluta.base.api.map.MapHandler;
|
import com.bartlomiejpluta.base.api.game.map.MapHandler;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
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.Renderable;
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.manager.ShaderManager;
|
|
||||||
import com.bartlomiejpluta.base.engine.input.GLFWKeyboard;
|
import com.bartlomiejpluta.base.engine.input.GLFWKeyboard;
|
||||||
import com.bartlomiejpluta.base.engine.logic.Updatable;
|
|
||||||
import com.bartlomiejpluta.base.engine.project.loader.ClassLoader;
|
import com.bartlomiejpluta.base.engine.project.loader.ClassLoader;
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
|
||||||
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.entity.manager.EntityManager;
|
import com.bartlomiejpluta.base.engine.world.entity.manager.EntityManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.manager.ImageManager;
|
import com.bartlomiejpluta.base.engine.world.image.manager.ImageManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.manager.MapManager;
|
import com.bartlomiejpluta.base.engine.world.map.manager.MapManager;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.bartlomiejpluta.base.engine.ui;
|
package com.bartlomiejpluta.base.engine.ui;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
import com.bartlomiejpluta.base.engine.error.AppException;
|
import com.bartlomiejpluta.base.engine.error.AppException;
|
||||||
import lombok.AccessLevel;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.NonNull;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
import org.lwjgl.glfw.GLFWErrorCallback;
|
import org.lwjgl.glfw.GLFWErrorCallback;
|
||||||
@@ -14,10 +14,9 @@ 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;
|
||||||
|
|
||||||
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
public class GLFWWindow implements Window {
|
||||||
public class Window {
|
|
||||||
private final String title;
|
private final String title;
|
||||||
private long windowHandle;
|
private long windowHandle = -1;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private int width;
|
private int width;
|
||||||
@@ -27,9 +26,24 @@ public class Window {
|
|||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
private boolean resized;
|
private boolean resized = false;
|
||||||
|
|
||||||
|
private boolean initialized = false;
|
||||||
|
|
||||||
|
public GLFWWindow(@NonNull String title, int width, int height) {
|
||||||
|
this.title = title;
|
||||||
|
this.width = width;
|
||||||
|
this.height = height;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
|
if(initialized) {
|
||||||
|
throw new IllegalStateException("The window is already initialized");
|
||||||
|
}
|
||||||
|
|
||||||
|
initialized = true;
|
||||||
|
|
||||||
// Setup an error callback. The default implementation
|
// Setup an error callback. The default implementation
|
||||||
// will print the error message in System.err.
|
// will print the error message in System.err.
|
||||||
GLFWErrorCallback.createPrint(System.err).set();
|
GLFWErrorCallback.createPrint(System.err).set();
|
||||||
@@ -55,9 +69,9 @@ public class Window {
|
|||||||
|
|
||||||
// Setup resize callback
|
// Setup resize callback
|
||||||
glfwSetFramebufferSizeCallback(windowHandle, (window, width, height) -> {
|
glfwSetFramebufferSizeCallback(windowHandle, (window, width, height) -> {
|
||||||
Window.this.width = width;
|
GLFWWindow.this.width = width;
|
||||||
Window.this.height = height;
|
GLFWWindow.this.height = height;
|
||||||
Window.this.resized = true;
|
GLFWWindow.this.resized = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
// 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.
|
||||||
@@ -92,28 +106,33 @@ public class Window {
|
|||||||
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
|
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void update() {
|
public void update() {
|
||||||
glfwSwapBuffers(windowHandle);
|
glfwSwapBuffers(windowHandle);
|
||||||
glfwPollEvents();
|
glfwPollEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean isKeyPressed(int keyCode) {
|
public boolean isKeyPressed(int keyCode) {
|
||||||
return glfwGetKey(windowHandle, keyCode) == GLFW_PRESS;
|
return glfwGetKey(windowHandle, keyCode) == GLFW_PRESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void clear(float r, float g, float b, float alpha) {
|
public void clear(float r, float g, float b, float alpha) {
|
||||||
glClearColor(r, g, b, alpha);
|
glClearColor(r, g, b, alpha);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean shouldClose() {
|
public boolean shouldClose() {
|
||||||
return glfwWindowShouldClose(windowHandle);
|
return glfwWindowShouldClose(windowHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Vector2f getSize() {
|
public Vector2f getSize() {
|
||||||
return new Vector2f(width, height);
|
return new Vector2f(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Window create(String title, int width, int height) {
|
public static Window create(String title, int width, int height) {
|
||||||
return new Window(title, -1, width, height, false);
|
return new GLFWWindow(title, width, height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
package com.bartlomiejpluta.base.engine.ui;
|
package com.bartlomiejpluta.base.engine.ui;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class WindowManager {
|
public class WindowManager {
|
||||||
public Window createWindow(String title, int width, int height) {
|
public Window createWindow(String title, int width, int height) {
|
||||||
return Window.create(title, width, height);
|
return GLFWWindow.create(title, width, height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.util.mesh;
|
package com.bartlomiejpluta.base.engine.util.mesh;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
||||||
import com.bartlomiejpluta.base.engine.gc.Cleanable;
|
|
||||||
|
|
||||||
public interface MeshManager extends Cleanable {
|
public interface MeshManager extends Cleanable {
|
||||||
Mesh createQuad(float width, float height, float originX, float originY);
|
Mesh createQuad(float width, float height, float originX, float originY);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.util.profiling.fps;
|
package com.bartlomiejpluta.base.engine.util.profiling.fps;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.gc.Cleanable;
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.engine.logic.Updatable;
|
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
|
||||||
|
|
||||||
public interface FPSMonitor extends Updatable, Cleanable {
|
public interface FPSMonitor extends Updatable, Cleanable {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.engine.util.profiling.time;
|
package com.bartlomiejpluta.base.engine.util.profiling.time;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.gc.Cleanable;
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.animation;
|
package com.bartlomiejpluta.base.engine.world.animation;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
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;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.manager.ShaderManager;
|
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.object.Sprite;
|
import com.bartlomiejpluta.base.engine.world.object.Sprite;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
|
|||||||
@@ -1,19 +1,22 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.camera;
|
package com.bartlomiejpluta.base.engine.world.camera;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
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.core.gl.shader.manager.ShaderManager;
|
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.object.Model;
|
import com.bartlomiejpluta.base.engine.world.object.Model;
|
||||||
import org.joml.Matrix4f;
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
public class Camera extends Model {
|
public class DefaultCamera extends Model implements Camera {
|
||||||
private final Matrix4f projectionMatrix = new Matrix4f();
|
private final Matrix4f projectionMatrix = new Matrix4f();
|
||||||
private final Matrix4f viewMatrix = new Matrix4f();
|
private final Matrix4f viewMatrix = new Matrix4f();
|
||||||
|
|
||||||
|
@Override
|
||||||
public Matrix4f computeViewModelMatrix(Matrix4f modelMatrix) {
|
public Matrix4f computeViewModelMatrix(Matrix4f modelMatrix) {
|
||||||
return new Matrix4f(viewMatrix).mul(modelMatrix);
|
return new Matrix4f(viewMatrix).mul(modelMatrix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void render(Window window, ShaderManager shaderManager) {
|
public void render(Window window, ShaderManager shaderManager) {
|
||||||
// Update matrices
|
// Update matrices
|
||||||
projectionMatrix
|
projectionMatrix
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.entity.config;
|
package com.bartlomiejpluta.base.engine.world.entity.config;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.entity.Direction;
|
import com.bartlomiejpluta.base.api.game.entity.Direction;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.joml.Vector2i;
|
import org.joml.Vector2i;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.entity.manager;
|
package com.bartlomiejpluta.base.engine.world.entity.manager;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.gc.Cleanable;
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.engine.world.entity.model.DefaultEntity;
|
import com.bartlomiejpluta.base.engine.world.entity.model.DefaultEntity;
|
||||||
|
|
||||||
public interface EntityManager extends Cleanable {
|
public interface EntityManager extends Cleanable {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.entity.model;
|
package com.bartlomiejpluta.base.engine.world.entity.model;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.entity.Direction;
|
import com.bartlomiejpluta.base.api.game.entity.Direction;
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
||||||
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;
|
||||||
import com.bartlomiejpluta.base.engine.util.math.MathUtil;
|
import com.bartlomiejpluta.base.engine.util.math.MathUtil;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.image.manager;
|
package com.bartlomiejpluta.base.engine.world.image.manager;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.engine.common.manager.AssetManager;
|
import com.bartlomiejpluta.base.engine.common.manager.AssetManager;
|
||||||
import com.bartlomiejpluta.base.engine.gc.Cleanable;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.image.asset.ImageAsset;
|
import com.bartlomiejpluta.base.engine.world.image.asset.ImageAsset;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.model.Image;
|
import com.bartlomiejpluta.base.engine.world.image.model.Image;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.map.layer.base;
|
package com.bartlomiejpluta.base.engine.world.map.layer.base;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.render.Renderable;
|
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
|
||||||
import com.bartlomiejpluta.base.engine.logic.Updatable;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
|
|
||||||
public interface Layer extends Renderable, Updatable {
|
public interface Layer extends Renderable, Updatable {
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.map.layer.color;
|
package com.bartlomiejpluta.base.engine.world.map.layer.color;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
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.shader.manager.ShaderManager;
|
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
|
||||||
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.map.layer.base.Layer;
|
import com.bartlomiejpluta.base.engine.world.map.layer.base.Layer;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.model.DefaultGameMap;
|
import com.bartlomiejpluta.base.engine.world.map.model.DefaultGameMap;
|
||||||
import com.bartlomiejpluta.base.engine.world.object.Sprite;
|
import com.bartlomiejpluta.base.engine.world.object.Sprite;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.map.layer.image;
|
package com.bartlomiejpluta.base.engine.world.map.layer.image;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.manager.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.model.Image;
|
import com.bartlomiejpluta.base.engine.world.image.model.Image;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.layer.base.Layer;
|
import com.bartlomiejpluta.base.engine.world.map.layer.base.Layer;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.model.DefaultGameMap;
|
import com.bartlomiejpluta.base.engine.world.map.model.DefaultGameMap;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.map.layer.object;
|
package com.bartlomiejpluta.base.engine.world.map.layer.object;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.entity.Direction;
|
import com.bartlomiejpluta.base.api.game.entity.Direction;
|
||||||
import com.bartlomiejpluta.base.api.map.PassageAbility;
|
import com.bartlomiejpluta.base.api.game.map.PassageAbility;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.manager.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.layer.base.Layer;
|
import com.bartlomiejpluta.base.engine.world.map.layer.base.Layer;
|
||||||
import com.bartlomiejpluta.base.engine.world.movement.MovableSprite;
|
import com.bartlomiejpluta.base.engine.world.movement.MovableSprite;
|
||||||
import org.joml.Vector2i;
|
import org.joml.Vector2i;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.map.layer.tile;
|
package com.bartlomiejpluta.base.engine.world.map.layer.tile;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.manager.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.layer.base.Layer;
|
import com.bartlomiejpluta.base.engine.world.map.layer.base.Layer;
|
||||||
import com.bartlomiejpluta.base.engine.world.tileset.model.Tile;
|
import com.bartlomiejpluta.base.engine.world.tileset.model.Tile;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.map.manager;
|
package com.bartlomiejpluta.base.engine.world.map.manager;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.engine.common.manager.AssetManager;
|
import com.bartlomiejpluta.base.engine.common.manager.AssetManager;
|
||||||
import com.bartlomiejpluta.base.engine.gc.Cleanable;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.map.asset.GameMapAsset;
|
import com.bartlomiejpluta.base.engine.world.map.asset.GameMapAsset;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.model.DefaultGameMap;
|
import com.bartlomiejpluta.base.engine.world.map.model.DefaultGameMap;
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.map.model;
|
package com.bartlomiejpluta.base.engine.world.map.model;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.entity.Movement;
|
import com.bartlomiejpluta.base.api.game.entity.Movement;
|
||||||
import com.bartlomiejpluta.base.api.map.GameMap;
|
import com.bartlomiejpluta.base.api.game.map.GameMap;
|
||||||
import com.bartlomiejpluta.base.api.map.PassageAbility;
|
import com.bartlomiejpluta.base.api.game.map.PassageAbility;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.render.Renderable;
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.shader.manager.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
|
||||||
import com.bartlomiejpluta.base.engine.logic.Updatable;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.entity.model.DefaultEntity;
|
import com.bartlomiejpluta.base.engine.world.entity.model.DefaultEntity;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.model.Image;
|
import com.bartlomiejpluta.base.engine.world.image.model.Image;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.layer.base.Layer;
|
import com.bartlomiejpluta.base.engine.world.map.layer.base.Layer;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.map.serial;
|
package com.bartlomiejpluta.base.engine.world.map.serial;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.map.PassageAbility;
|
import com.bartlomiejpluta.base.api.game.map.PassageAbility;
|
||||||
import com.bartlomiejpluta.base.engine.error.AppException;
|
import com.bartlomiejpluta.base.engine.error.AppException;
|
||||||
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.manager.ImageManager;
|
import com.bartlomiejpluta.base.engine.world.image.manager.ImageManager;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.movement;
|
package com.bartlomiejpluta.base.engine.world.movement;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.entity.Direction;
|
import com.bartlomiejpluta.base.api.game.entity.Direction;
|
||||||
import com.bartlomiejpluta.base.api.entity.Movement;
|
import com.bartlomiejpluta.base.api.game.entity.Movement;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.movement;
|
package com.bartlomiejpluta.base.engine.world.movement;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.entity.Direction;
|
import com.bartlomiejpluta.base.api.game.entity.Direction;
|
||||||
import com.bartlomiejpluta.base.api.entity.Movement;
|
import com.bartlomiejpluta.base.api.game.entity.Movement;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
|
||||||
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;
|
||||||
import com.bartlomiejpluta.base.engine.logic.Updatable;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.animation.AnimatedSprite;
|
import com.bartlomiejpluta.base.engine.world.animation.AnimatedSprite;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.object;
|
package com.bartlomiejpluta.base.engine.world.object;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.object.Placeable;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@@ -9,7 +10,7 @@ import org.joml.Vector2f;
|
|||||||
import static java.lang.Math.toRadians;
|
import static java.lang.Math.toRadians;
|
||||||
|
|
||||||
@EqualsAndHashCode
|
@EqualsAndHashCode
|
||||||
public abstract class Model {
|
public abstract class Model implements Placeable {
|
||||||
private final Matrix4f modelMatrix = new Matrix4f();
|
private final Matrix4f modelMatrix = new Matrix4f();
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -27,40 +28,48 @@ public abstract class Model {
|
|||||||
@Setter
|
@Setter
|
||||||
protected float scaleY = 1.0f;
|
protected float scaleY = 1.0f;
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setPosition(float x, float y) {
|
public void setPosition(float x, float y) {
|
||||||
position.x = x;
|
position.x = x;
|
||||||
position.y = y;
|
position.y = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setPosition(Vector2f position) {
|
public void setPosition(Vector2f position) {
|
||||||
this.position.x = position.x;
|
this.position.x = position.x;
|
||||||
this.position.y = position.y;
|
this.position.y = position.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void movePosition(float x, float y) {
|
public void movePosition(float x, float y) {
|
||||||
position.x += x;
|
position.x += x;
|
||||||
position.y += y;
|
position.y += y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void movePosition(Vector2f position) {
|
public void movePosition(Vector2f position) {
|
||||||
this.position.x += position.x;
|
this.position.x += position.x;
|
||||||
this.position.y += position.y;
|
this.position.y += position.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void moveRotation(float rotation) {
|
public void moveRotation(float rotation) {
|
||||||
this.rotation += rotation;
|
this.rotation += rotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setScale(float scale) {
|
public void setScale(float scale) {
|
||||||
this.scaleX = scale;
|
this.scaleX = scale;
|
||||||
this.scaleY = scale;
|
this.scaleY = scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setScale(float scaleX, float scaleY) {
|
public void setScale(float scaleX, float scaleY) {
|
||||||
this.scaleX = scaleX;
|
this.scaleX = scaleX;
|
||||||
this.scaleY = scaleY;
|
this.scaleY = scaleY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Matrix4f getModelMatrix() {
|
public Matrix4f getModelMatrix() {
|
||||||
return modelMatrix
|
return modelMatrix
|
||||||
.identity()
|
.identity()
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.object;
|
package com.bartlomiejpluta.base.engine.world.object;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.camera.Camera;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.window.Window;
|
||||||
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;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.render.Renderable;
|
|
||||||
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.core.gl.shader.manager.ShaderManager;
|
|
||||||
import com.bartlomiejpluta.base.engine.ui.Window;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.camera.Camera;
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.tileset.manager;
|
package com.bartlomiejpluta.base.engine.world.tileset.manager;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.engine.common.manager.AssetManager;
|
import com.bartlomiejpluta.base.engine.common.manager.AssetManager;
|
||||||
import com.bartlomiejpluta.base.engine.gc.Cleanable;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.tileset.asset.TileSetAsset;
|
import com.bartlomiejpluta.base.engine.world.tileset.asset.TileSetAsset;
|
||||||
import com.bartlomiejpluta.base.engine.world.tileset.model.TileSet;
|
import com.bartlomiejpluta.base.engine.world.tileset.model.TileSet;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user