Add a button to hide the GUI (F1)

fixes #470
This commit is contained in:
IntegratedQuantum 2024-07-02 22:15:48 +02:00
parent 78db8f0839
commit 2e06b9d4af
3 changed files with 19 additions and 11 deletions

View File

@ -30,6 +30,7 @@ var selectedWindow: ?*GuiWindow = null;
pub var selectedTextInput: ?*TextInput = null;
var hoveredAWindow: bool = false;
pub var reorderWindows: bool = false;
pub var hideGui: bool = false;
pub var scale: f32 = undefined;
@ -529,18 +530,20 @@ pub fn updateAndRenderGui() void {
for(openWindows.items) |window| {
window.update();
}
if(!main.Window.grabbed) {
draw.setColor(0x80000000);
GuiWindow.borderShader.bind();
graphics.c.glUniform2f(GuiWindow.borderUniforms.effectLength, main.Window.getWindowSize()[0]/6, main.Window.getWindowSize()[1]/6);
draw.customShadedRect(GuiWindow.borderUniforms, .{0, 0}, main.Window.getWindowSize());
if(!hideGui) {
if(!main.Window.grabbed) {
draw.setColor(0x80000000);
GuiWindow.borderShader.bind();
graphics.c.glUniform2f(GuiWindow.borderUniforms.effectLength, main.Window.getWindowSize()[0]/6, main.Window.getWindowSize()[1]/6);
draw.customShadedRect(GuiWindow.borderUniforms, .{0, 0}, main.Window.getWindowSize());
}
const oldScale = draw.setScale(scale);
defer draw.restoreScale(oldScale);
for(openWindows.items) |window| {
window.render(mousePos);
}
inventory.render(mousePos);
}
const oldScale = draw.setScale(scale);
defer draw.restoreScale(oldScale);
for(openWindows.items) |window| {
window.render(mousePos);
}
inventory.render(mousePos);
}
pub fn toggleGameMenu() void {

View File

@ -270,6 +270,9 @@ fn takeBackgroundImageFn() void {
if(game.world == null) return;
renderer.MenuBackGround.takeBackgroundImage();
}
fn toggleHideGui() void {
gui.hideGui = !gui.hideGui;
}
fn toggleDebugOverlay() void {
gui.toggleWindow("debug");
}
@ -329,6 +332,7 @@ pub const KeyBoard = struct {
.{.name = "textNewline", .key = c.GLFW_KEY_ENTER, .repeatAction = &gui.textCallbacks.newline},
// debug:
.{.name = "hideMenu", .key = c.GLFW_KEY_F1, .releaseAction = &toggleHideGui},
.{.name = "debugOverlay", .key = c.GLFW_KEY_F3, .releaseAction = &toggleDebugOverlay},
.{.name = "performanceOverlay", .key = c.GLFW_KEY_F4, .releaseAction = &togglePerformanceOverlay},
.{.name = "gpuPerformanceOverlay", .key = c.GLFW_KEY_F5, .releaseAction = &toggleGPUPerformanceOverlay},

View File

@ -856,6 +856,7 @@ pub const MeshSelection = struct {
}
pub fn render(projectionMatrix: Mat4f, viewMatrix: Mat4f, playerPos: Vec3d) void {
if(main.gui.hideGui) return;
if(selectedBlockPos) |_selectedBlockPos| {
c.glEnable(c.GL_POLYGON_OFFSET_LINE);
defer c.glDisable(c.GL_POLYGON_OFFSET_LINE);