diff --git a/api/src/main/java/com/bartlomiejpluta/base/api/game/gui/GUI.java b/api/src/main/java/com/bartlomiejpluta/base/api/game/gui/GUI.java new file mode 100644 index 00000000..0f03c76e --- /dev/null +++ b/api/src/main/java/com/bartlomiejpluta/base/api/game/gui/GUI.java @@ -0,0 +1,7 @@ +package com.bartlomiejpluta.base.api.game.gui; + +import com.bartlomiejpluta.base.api.internal.logic.Updatable; +import com.bartlomiejpluta.base.api.internal.render.Renderable; + +public interface GUI extends Updatable, Renderable { +} diff --git a/engine/src/main/java/com/bartlomiejpluta/base/engine/core/gl/render/DefaultRenderer.java b/engine/src/main/java/com/bartlomiejpluta/base/engine/core/gl/render/DefaultRenderer.java index 57e1d1ab..f3d51c3d 100644 --- a/engine/src/main/java/com/bartlomiejpluta/base/engine/core/gl/render/DefaultRenderer.java +++ b/engine/src/main/java/com/bartlomiejpluta/base/engine/core/gl/render/DefaultRenderer.java @@ -22,15 +22,15 @@ public class DefaultRenderer implements Renderer { public void init() { log.info("Initializing renderer"); shaderManager - .createShader("default", "/shaders/default.vs", "/shaders/default.fs") - .selectShader("default") - .createUniform(UniformName.UNI_VIEW_MODEL_MATRIX) - .createUniform(UniformName.UNI_PROJECTION_MATRIX) - .createUniform(UniformName.UNI_OBJECT_COLOR) - .createUniform(UniformName.UNI_HAS_OBJECT_TEXTURE) - .createUniform(UniformName.UNI_TEXTURE_SAMPLER) - .createUniform(UniformName.UNI_SPRITE_SIZE) - .createUniform(UniformName.UNI_SPRITE_POSITION); + .createShader("default", "/shaders/default.vs", "/shaders/default.fs") + .selectShader("default") + .createUniform(UniformName.UNI_VIEW_MODEL_MATRIX) + .createUniform(UniformName.UNI_PROJECTION_MATRIX) + .createUniform(UniformName.UNI_OBJECT_COLOR) + .createUniform(UniformName.UNI_HAS_OBJECT_TEXTURE) + .createUniform(UniformName.UNI_TEXTURE_SAMPLER) + .createUniform(UniformName.UNI_SPRITE_SIZE) + .createUniform(UniformName.UNI_SPRITE_POSITION); } @Override @@ -51,7 +51,7 @@ public class DefaultRenderer implements Renderer { } private void clear() { - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); } private void updateViewport(Screen screen) { diff --git a/engine/src/main/java/com/bartlomiejpluta/base/engine/ui/GLFWScreen.java b/engine/src/main/java/com/bartlomiejpluta/base/engine/ui/GLFWScreen.java index 83d064bc..4428b98e 100644 --- a/engine/src/main/java/com/bartlomiejpluta/base/engine/ui/GLFWScreen.java +++ b/engine/src/main/java/com/bartlomiejpluta/base/engine/ui/GLFWScreen.java @@ -97,6 +97,9 @@ public class GLFWScreen implements Screen { // Make the OpenGL context current glfwMakeContextCurrent(windowHandle); + // Enable antialiasing + glfwWindowHint(GLFW_SAMPLES, 4); + // Enable V-Sync // glfwSwapInterval(1); @@ -109,6 +112,9 @@ public class GLFWScreen implements Screen { glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + // Required by GUI + glEnable(GL_STENCIL_TEST); + // Set the clear color clear(0.0f, 0.0f, 0.0f, 0.0f); }