diff --git a/assets/Audio/MenuBackspace.ogg b/assets/Audio/MenuBackspace.ogg new file mode 100644 index 00000000..e6fc2e74 Binary files /dev/null and b/assets/Audio/MenuBackspace.ogg differ diff --git a/assets/Audio/MenuBadOption.ogg b/assets/Audio/MenuBadOption.ogg new file mode 100644 index 00000000..e29c782a Binary files /dev/null and b/assets/Audio/MenuBadOption.ogg differ diff --git a/assets/Audio/MenuChangeOption.ogg b/assets/Audio/MenuChangeOption.ogg new file mode 100644 index 00000000..4ab6de88 Binary files /dev/null and b/assets/Audio/MenuChangeOption.ogg differ diff --git a/assets/Audio/MenuType.ogg b/assets/Audio/MenuType.ogg new file mode 100644 index 00000000..df68dfd8 Binary files /dev/null and b/assets/Audio/MenuType.ogg differ diff --git a/assets/Textures/ow1.png b/assets/Textures/ow1.png new file mode 100644 index 00000000..58043da6 Binary files /dev/null and b/assets/Textures/ow1.png differ diff --git a/src/main/java/electrosphere/main/Globals.java b/src/main/java/electrosphere/main/Globals.java index 2391d02a..3ffb7ae2 100644 --- a/src/main/java/electrosphere/main/Globals.java +++ b/src/main/java/electrosphere/main/Globals.java @@ -191,6 +191,8 @@ public class Globals { public static String blackTexture; public static String testingTexture; + public static String whiteTexture; + public static String offWhiteTexture; public static String planeModelID; @@ -298,7 +300,8 @@ public class Globals { public static boolean RENDER_FLAG_RENDER_SHADOW_MAP = false; public static boolean RENDER_FLAG_RENDER_SCREEN_FRAMEBUFFER_CONTENT = false; public static boolean RENDER_FLAG_RENDER_SCREEN_FRAMEBUFFER = false; - public static boolean RENDER_FLAG_RENDER_BLACK_BACKGROUND = true; + public static boolean RENDER_FLAG_RENDER_BLACK_BACKGROUND = false; + public static boolean RENDER_FLAG_RENDER_WHITE_BACKGROUND = true; public static boolean RENDER_FLAG_RENDER_UI = true; @@ -336,6 +339,13 @@ public class Globals { playerManager = new PlayerManager(); } + public static void initDefaultAudioResources(){ + Globals.assetManager.addAudioPathToQueue("/Audio/MenuBackspace.ogg"); + Globals.assetManager.addAudioPathToQueue("/Audio/MenuBadOption.ogg"); + Globals.assetManager.addAudioPathToQueue("/Audio/MenuChangeOption.ogg"); + Globals.assetManager.addAudioPathToQueue("/Audio/MenuType.ogg"); + } + public static void initDefaultGraphicalResources(){ //create default textures Globals.assetManager.addTexturePathtoQueue("Textures/default_diffuse.png"); @@ -354,6 +364,12 @@ public class Globals { //black texture for backgrouns blackTexture = "Textures/b1.png"; Globals.assetManager.addTexturePathtoQueue(blackTexture); + //white texture for backgrounds + whiteTexture = "Textures/w1.png"; + Globals.assetManager.addTexturePathtoQueue(whiteTexture); + //off white texture for backgrounds + offWhiteTexture = "Textures/ow1.png"; + Globals.assetManager.addTexturePathtoQueue(offWhiteTexture); //loading box loadingBox = WidgetUtils.createVerticallyAlignedTextBox(520, 100, 50, 7, 1, "LOADING", true); //init default shaderProgram diff --git a/src/main/java/electrosphere/main/Main.java b/src/main/java/electrosphere/main/Main.java index de31da43..c053689e 100644 --- a/src/main/java/electrosphere/main/Main.java +++ b/src/main/java/electrosphere/main/Main.java @@ -185,6 +185,7 @@ public class Main { //init default resources Globals.initDefaultGraphicalResources(); + Globals.initDefaultAudioResources(); //fire off a loading thread for the title menus/screen Globals.loadingThread = new LoadingThread(LoadingThread.LOAD_TITLE_MENU); diff --git a/src/main/java/electrosphere/menu/Menu.java b/src/main/java/electrosphere/menu/Menu.java index b3655460..29a1823b 100644 --- a/src/main/java/electrosphere/menu/Menu.java +++ b/src/main/java/electrosphere/menu/Menu.java @@ -1,5 +1,7 @@ package electrosphere.menu; +import electrosphere.audio.AudioSource; +import electrosphere.audio.AudioUtils; import electrosphere.main.Globals; import electrosphere.renderer.ui.Widget; import electrosphere.renderer.ui.font.TextBox; @@ -63,6 +65,7 @@ public class Menu { option = 0; } setMenuOptionColor(option,new Vector3f(0.2f,0.8f,0.5f)); + AudioSource startupSound = AudioUtils.playAudioAtLocation("/Audio/MenuChangeOption.ogg", new Vector3f(0,0,0)); } public void decrementMenuOption(){ @@ -72,6 +75,7 @@ public class Menu { option = optionMax - 1; } setMenuOptionColor(option,new Vector3f(0.2f,0.8f,0.5f)); + AudioSource startupSound = AudioUtils.playAudioAtLocation("/Audio/MenuChangeOption.ogg", new Vector3f(0,0,0)); } public Widget getCurrentOption(){ diff --git a/src/main/java/electrosphere/menu/MenuTransition.java b/src/main/java/electrosphere/menu/MenuTransition.java index cad73773..8ce5e2b5 100644 --- a/src/main/java/electrosphere/menu/MenuTransition.java +++ b/src/main/java/electrosphere/menu/MenuTransition.java @@ -1,5 +1,7 @@ package electrosphere.menu; +import electrosphere.audio.AudioSource; +import electrosphere.audio.AudioUtils; import electrosphere.controls.ControlHandler; import electrosphere.engine.LoadingThread; import electrosphere.game.server.saves.SaveUtils; @@ -9,6 +11,7 @@ import electrosphere.net.NetUtils; import electrosphere.net.client.ClientNetworking; import electrosphere.renderer.ui.Widget; import electrosphere.renderer.ui.font.TextBox; +import org.joml.Vector3f; /** * @@ -140,6 +143,7 @@ public class MenuTransition { } public static void backout(Menu m){ + AudioSource startupSound = AudioUtils.playAudioAtLocation("/Audio/MenuBackspace.ogg", new Vector3f(0,0,0)); switch(m.getType()){ case TITLE_MENU: Main.running = false; @@ -194,6 +198,7 @@ public class MenuTransition { String currentText = currentTextBox.getText(); if(currentText.length() > 0){ currentTextBox.setText(currentText.substring(0, currentText.length() - 1)); + AudioSource startupSound = AudioUtils.playAudioAtLocation("/Audio/MenuBackspace.ogg", new Vector3f(0,0,0)); } } backspace = true; @@ -316,6 +321,7 @@ public class MenuTransition { String currentText = currentTextBox.getText(); if(currentText.length() < currentTextBox.getCols()){ currentTextBox.setText(currentText + toWrite); + AudioSource startupSound = AudioUtils.playAudioAtLocation("/Audio/MenuType.ogg", new Vector3f(0,0,0)); } } } diff --git a/src/main/java/electrosphere/renderer/RenderingEngine.java b/src/main/java/electrosphere/renderer/RenderingEngine.java index 29595c19..6c46112f 100644 --- a/src/main/java/electrosphere/renderer/RenderingEngine.java +++ b/src/main/java/electrosphere/renderer/RenderingEngine.java @@ -305,6 +305,13 @@ public class RenderingEngine { renderBlackBackground(); } + /* + Render white background + */ + if(Globals.RENDER_FLAG_RENDER_WHITE_BACKGROUND){ + renderWhiteBackground(); + } + /* Render any ui elements */ @@ -668,6 +675,20 @@ public class RenderingEngine { glBindVertexArray(0); } + static void renderWhiteBackground(){ + //render full screen quad + glUseProgram(screenTextureShaders.shaderProgram); + glDisable(GL_DEPTH_TEST); + glBindVertexArray(screenTextureVAO); + Texture blackTexture = Globals.assetManager.fetchTexture(Globals.offWhiteTexture); + if(blackTexture != null){ + blackTexture.bind(); + } +// glBindTexture(GL_TEXTURE_2D, screenFramebuffer.getTexture()); + glDrawArrays(GL_TRIANGLES, 0, 6); + glBindVertexArray(0); + } + public void setActiveShader(ShaderProgram program){ glUseProgram(program.shaderProgram);