Enable displaying text

This commit is contained in:
2021-03-11 09:28:22 +01:00
parent efa43f0eb0
commit f7bed7a045
4 changed files with 28 additions and 24 deletions

View File

@@ -12,13 +12,13 @@ public interface GUI extends Renderable, Disposable {
void drawRectangle(float x, float y, float w, float h);
void fillColor(Color color);
void fillColor(float red, float green, float blue, float alpha);
void strokeColor(float red, float green, float blue, float alpha);
void setFontFace(String fontUid);
void setFontSize(float size);
void putText(float x, float y, CharSequence text);
Color createColor(float red, float green, float blue, float alpha);
}

View File

@@ -53,7 +53,7 @@ public class DefaultRenderer implements Renderer {
}
private void clear() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
}
private void updateViewport(Screen screen) {

View File

@@ -1,20 +1,17 @@
package com.bartlomiejpluta.base.engine.gui.render;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.gui.Color;
import com.bartlomiejpluta.base.api.game.gui.GUI;
import com.bartlomiejpluta.base.api.game.gui.Widget;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import com.bartlomiejpluta.base.engine.error.AppException;
import com.bartlomiejpluta.base.engine.gui.manager.FontManager;
import com.bartlomiejpluta.base.engine.gui.model.NanoVGColorAdapter;
import lombok.Getter;
import lombok.Setter;
import org.lwjgl.nanovg.NVGColor;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import static org.lwjgl.nanovg.NanoVG.*;
@@ -28,7 +25,7 @@ public class NanoVGGUI implements GUI {
@Setter
private Widget root;
private final List<NanoVGColorAdapter> createdColors = new LinkedList<>();
private NVGColor color;
private final Set<String> loadedFonts = new HashSet<>();
private final FontManager fontManager;
@@ -40,6 +37,8 @@ public class NanoVGGUI implements GUI {
public void init(Screen screen) {
context = nvgCreate(NVG_ANTIALIAS | NVG_STENCIL_STROKES);
color = NVGColor.create();
if (context == NULL) {
throw new AppException("Could not onCreate NanoVG");
}
@@ -66,22 +65,31 @@ public class NanoVGGUI implements GUI {
nvgRect(context, x, y, w, h);
}
@Override
public void fillColor(Color color) {
nvgFillColor(context, (NanoVGColorAdapter) color);
nvgFill(context);
}
@Override
public void putText(float x, float y, CharSequence text) {
nvgText(context, x, y, text);
}
@Override
public Color createColor(float red, float green, float blue, float alpha) {
var color = new NanoVGColorAdapter(red, green, blue, alpha);
createdColors.add(color);
return color;
public void fillColor(float red, float green, float blue, float alpha) {
color.r(red);
color.g(green);
color.b(blue);
color.a(alpha);
nvgFillColor(context, color);
nvgFill(context);
}
@Override
public void strokeColor(float red, float green, float blue, float alpha) {
color.r(red);
color.g(green);
color.b(blue);
color.a(alpha);
nvgStrokeColor(context, color);
nvgFill(context);
}
@Override
@@ -102,7 +110,7 @@ public class NanoVGGUI implements GUI {
@Override
public void dispose() {
createdColors.forEach(NanoVGColorAdapter::dispose);
color.free();
nvgDelete(context);
}
}

View File

@@ -112,9 +112,6 @@ 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);
}
@@ -137,7 +134,6 @@ public class GLFWScreen implements Screen {
@Override
public void restoreState() {
glEnable(GL_STENCIL_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}