diff --git a/.gitignore b/.gitignore index 57940fd..c8d833a 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,12 @@ # Generated files .idea/**/contentModel.xml - +.idea/ +build/ +/.gradle/ +/.idea/ +/build/ +/.gradle/ # Sensitive or high-churn files .idea/**/dataSources/ .idea/**/dataSources.ids diff --git a/.gradle/8.14/checksums/checksums.lock b/.gradle/8.14/checksums/checksums.lock index 73e7ccf..df1fada 100644 Binary files a/.gradle/8.14/checksums/checksums.lock and b/.gradle/8.14/checksums/checksums.lock differ diff --git a/.gradle/8.14/checksums/md5-checksums.bin b/.gradle/8.14/checksums/md5-checksums.bin index 652abe2..7bedf50 100644 Binary files a/.gradle/8.14/checksums/md5-checksums.bin and b/.gradle/8.14/checksums/md5-checksums.bin differ diff --git a/.gradle/8.14/checksums/sha1-checksums.bin b/.gradle/8.14/checksums/sha1-checksums.bin index 22ce6d3..c442020 100644 Binary files a/.gradle/8.14/checksums/sha1-checksums.bin and b/.gradle/8.14/checksums/sha1-checksums.bin differ diff --git a/.gradle/8.14/executionHistory/executionHistory.bin b/.gradle/8.14/executionHistory/executionHistory.bin index 357bca2..f12b49e 100644 Binary files a/.gradle/8.14/executionHistory/executionHistory.bin and b/.gradle/8.14/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.14/executionHistory/executionHistory.lock b/.gradle/8.14/executionHistory/executionHistory.lock index eddb209..4a1117c 100644 Binary files a/.gradle/8.14/executionHistory/executionHistory.lock and b/.gradle/8.14/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.14/fileHashes/fileHashes.bin b/.gradle/8.14/fileHashes/fileHashes.bin index 7bbd37c..d0d94bd 100644 Binary files a/.gradle/8.14/fileHashes/fileHashes.bin and b/.gradle/8.14/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.14/fileHashes/fileHashes.lock b/.gradle/8.14/fileHashes/fileHashes.lock index 21d2c99..f184b21 100644 Binary files a/.gradle/8.14/fileHashes/fileHashes.lock and b/.gradle/8.14/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.14/fileHashes/resourceHashesCache.bin b/.gradle/8.14/fileHashes/resourceHashesCache.bin index a154e73..2fa77c7 100644 Binary files a/.gradle/8.14/fileHashes/resourceHashesCache.bin and b/.gradle/8.14/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index e53ec68..8832b54 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index 1c814ed..03f7f3c 100644 Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 28b7f94..a282bfa 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/.idea/misc.xml b/.idea/misc.xml index 19978af..4f0665e 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,8 @@ + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7..35eb1dd 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 7369a2a..e5f67c6 100644 --- a/build.gradle +++ b/build.gradle @@ -39,7 +39,8 @@ repositories { dependencies { implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion") - + implementation 'org.tinylog:tinylog-api:2.7.0' + implementation 'org.tinylog:tinylog-impl:2.7.0' implementation "org.lwjgl:lwjgl" implementation "org.lwjgl:lwjgl-assimp" implementation "org.lwjgl:lwjgl-cuda" diff --git a/build/classes/java/main/net/halbear/Executable/Init.class b/build/classes/java/main/net/halbear/Executable/Init.class deleted file mode 100644 index 066cb20..0000000 Binary files a/build/classes/java/main/net/halbear/Executable/Init.class and /dev/null differ diff --git a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Display/Render.class b/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Display/Render.class deleted file mode 100644 index e352921..0000000 Binary files a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Display/Render.class and /dev/null differ diff --git a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Display/VulkanInstance.class b/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Display/VulkanInstance.class deleted file mode 100644 index 3f2629d..0000000 Binary files a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Display/VulkanInstance.class and /dev/null differ diff --git a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Display/Window.class b/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Display/Window.class deleted file mode 100644 index 0986f97..0000000 Binary files a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Display/Window.class and /dev/null differ diff --git a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Input/KeyboardInput.class b/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Input/KeyboardInput.class deleted file mode 100644 index 7d39f21..0000000 Binary files a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Input/KeyboardInput.class and /dev/null differ diff --git a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Input/MouseListener.class b/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Input/MouseListener.class deleted file mode 100644 index f269aaf..0000000 Binary files a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Input/MouseListener.class and /dev/null differ diff --git a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Logic/EngineInstance.class b/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Logic/EngineInstance.class deleted file mode 100644 index ae8d01c..0000000 Binary files a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Logic/EngineInstance.class and /dev/null differ diff --git a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Logic/GameLogic.class b/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Logic/GameLogic.class deleted file mode 100644 index 7a25cb9..0000000 Binary files a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Logic/GameLogic.class and /dev/null differ diff --git a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Logic/Globals.class b/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Logic/Globals.class deleted file mode 100644 index 6fccead..0000000 Binary files a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Logic/Globals.class and /dev/null differ diff --git a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Main/GameCore.class b/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Main/GameCore.class deleted file mode 100644 index b37067c..0000000 Binary files a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Main/GameCore.class and /dev/null differ diff --git a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Main/PrimaryRuntime.class b/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Main/PrimaryRuntime.class deleted file mode 100644 index afbd8a0..0000000 Binary files a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Main/PrimaryRuntime.class and /dev/null differ diff --git a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Main/Scene.class b/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Main/Scene.class deleted file mode 100644 index ec5668c..0000000 Binary files a/build/classes/java/main/net/halbear/Terrain4J/EngineCore/Main/Scene.class and /dev/null differ diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html deleted file mode 100644 index c1f6055..0000000 --- a/build/reports/problems/problems-report.html +++ /dev/null @@ -1,663 +0,0 @@ - - - - - - - - - - - - - Gradle Configuration Cache - - - -
- -
- Loading... -
- - - - - - diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/EngineInstance.class.uniqueId8 b/build/tmp/compileJava/compileTransaction/stash-dir/EngineInstance.class.uniqueId8 deleted file mode 100644 index 15f175f..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/EngineInstance.class.uniqueId8 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/GameCore.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/GameCore.class.uniqueId0 deleted file mode 100644 index b37067c..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/GameCore.class.uniqueId0 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/GameLogic.class.uniqueId4 b/build/tmp/compileJava/compileTransaction/stash-dir/GameLogic.class.uniqueId4 deleted file mode 100644 index 7a25cb9..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/GameLogic.class.uniqueId4 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Init.class.uniqueId7 b/build/tmp/compileJava/compileTransaction/stash-dir/Init.class.uniqueId7 deleted file mode 100644 index 066cb20..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Init.class.uniqueId7 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/MouseListener.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/MouseListener.class.uniqueId5 deleted file mode 100644 index c9e2040..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/MouseListener.class.uniqueId5 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/PrimaryRuntime.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/PrimaryRuntime.class.uniqueId1 deleted file mode 100644 index c059524..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/PrimaryRuntime.class.uniqueId1 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Render.class.uniqueId6 b/build/tmp/compileJava/compileTransaction/stash-dir/Render.class.uniqueId6 deleted file mode 100644 index 341ead1..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Render.class.uniqueId6 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Scene.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/Scene.class.uniqueId2 deleted file mode 100644 index 273be0f..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Scene.class.uniqueId2 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Window.class.uniqueId3 b/build/tmp/compileJava/compileTransaction/stash-dir/Window.class.uniqueId3 deleted file mode 100644 index 9ff3178..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Window.class.uniqueId3 and /dev/null differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin deleted file mode 100644 index f19c87e..0000000 Binary files a/build/tmp/compileJava/previous-compilation-data.bin and /dev/null differ diff --git a/src/main/java/net/halbear/Executable/Init.java b/src/main/java/net/halbear/Executable/Init.java index dae817e..9fe7a37 100644 --- a/src/main/java/net/halbear/Executable/Init.java +++ b/src/main/java/net/halbear/Executable/Init.java @@ -2,10 +2,13 @@ package net.halbear.Executable; import net.halbear.Terrain4J.EngineCore.Main.GameCore; import net.halbear.Terrain4J.EngineCore.Main.PrimaryRuntime; +import org.tinylog.Logger; public class Init { public static void main(String[] args){ + Logger.info("Launching Software"); var GameEngine = new PrimaryRuntime("Terrain4J", new GameCore()); GameEngine.run(); + Logger.info("Launched Engine"); } } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Display/VulkanInstance.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Display/VulkanInstance.java index 7626cdf..243a39a 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Display/VulkanInstance.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Display/VulkanInstance.java @@ -4,7 +4,9 @@ import net.halbear.Terrain4J.EngineCore.Vulkan.Util.VulkanUtils; import org.lwjgl.PointerBuffer; import org.lwjgl.glfw.GLFWVulkan; import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.*; +import org.tinylog.Logger; import java.nio.ByteBuffer; import java.nio.IntBuffer; @@ -14,21 +16,28 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.logging.Logger; import static net.halbear.Terrain4J.EngineCore.Vulkan.Util.VulkanUtils.vkCheck; -import static org.lwjgl.vulkan.EXTDebugUtils.vkCreateDebugUtilsMessengerEXT; -import static org.lwjgl.vulkan.EXTDebugUtils.vkDestroyDebugUtilsMessengerEXT; +import static org.lwjgl.vulkan.EXTDebugUtils.*; import static org.lwjgl.vulkan.VK10.*; import static org.lwjgl.vulkan.VK14.VK_API_VERSION_1_4; public class VulkanInstance { + public static final int MESSAGE_SEVERITY_BITMASK = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT; + public static final int MESSAGE_TYPE_BITMASK = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT; + private static final String DBG_CALL_BACK_PREF = "VkDebugUtilsCallback, {}"; private static final String VALIDATION_LAYER = "VK_LAYER_KHRONOS_validation"; private static final String PORTABILITY_EXTENSION = "VK_KHR_portability_enumeration"; - private static VkInstance vkInstance; + private final VkInstance vkInstance; + private VkDebugUtilsMessengerCreateInfoEXT DebugUtils; + private long DebugHandle; public VulkanInstance(boolean validate){ + Logger.debug("Initialising Vulkan Instance"); try (MemoryStack MemStack = MemoryStack.stackPush()) { ByteBuffer appShortName = MemStack.UTF8("Terrain4J"); var appInfo = VkApplicationInfo.calloc(MemStack).sType$Default().pApplicationName(appShortName).applicationVersion(1).pEngineName(appShortName).engineVersion(3).apiVersion(VK_API_VERSION_1_4); @@ -40,12 +49,15 @@ public class VulkanInstance { boolean SupportsValidation = validate; if (validate && ValidationLayerCount == 0){ SupportsValidation = false; + Logger.warn("No Layers Found to Validate, continuing without validation"); } + Logger.debug("Validation:{}", SupportsValidation); //once its done the validation layers, transform it into a pointer (null terminated string to be exact) PointerBuffer RequiredLayers = null; if (SupportsValidation){ RequiredLayers = MemStack.mallocPointer(ValidationLayerCount); for(int i = 0; i < ValidationLayerCount; i++){ + Logger.debug("Using Validation Layer:{}", ValidationLayers.get(i)); RequiredLayers.put(i, MemStack.ASCII(ValidationLayers.get(i))); } } @@ -72,6 +84,11 @@ public class VulkanInstance { RequiredExtensions.put(ExtraExtensions.get(i)); } RequiredExtensions.flip(); + long extension = MemoryUtil.NULL; + if(SupportsValidation){ + DebugUtils = CreateDebugCallBack(); + extension = DebugUtils.address(); + } var InstanceInfo = VkInstanceCreateInfo.calloc(MemStack) .sType$Default() .pApplicationInfo(appInfo) @@ -83,6 +100,13 @@ public class VulkanInstance { PointerBuffer PointerInstance = MemStack.mallocPointer(1); vkCheck(vkCreateInstance(InstanceInfo,null,PointerInstance), "Error Creating Vulkan Instance"); vkInstance = new VkInstance(PointerInstance.get(0),InstanceInfo); + + DebugHandle = VK_NULL_HANDLE; + if(SupportsValidation){ + LongBuffer LongBuffer = MemStack.mallocLong(1); + vkCheck(vkCreateDebugUtilsMessengerEXT(vkInstance, DebugUtils, null, LongBuffer), "Error Creating Handle"); + DebugHandle = LongBuffer.get(0); + } } } private Set getSupportedInstanceExtensions(){ @@ -91,6 +115,7 @@ public class VulkanInstance { IntBuffer ExtensionsBuffer = MemStack.callocInt(1); vkEnumerateInstanceExtensionProperties((String)null,ExtensionsBuffer, null); int ExtensionsCount = ExtensionsBuffer.get(0); + Logger.debug("Instance Extension Count:[{}]", ExtensionsCount); var InstanceExtensionsProps = VkExtensionProperties.calloc(ExtensionsCount, MemStack); vkEnumerateInstanceExtensionProperties((String)null,ExtensionsBuffer, InstanceExtensionsProps); @@ -98,7 +123,8 @@ public class VulkanInstance { VkExtensionProperties Properties = InstanceExtensionsProps.get(i); String ExtensionName = Properties.extensionNameString(); InstanceExtensions.add(ExtensionName); - } + Logger.trace("Supported Instance Extension [{}]", ExtensionName); + } } return InstanceExtensions; } @@ -107,6 +133,7 @@ public class VulkanInstance { IntBuffer LayersArray = MemStack.callocInt(1); vkEnumerateInstanceLayerProperties(LayersArray, null); int Layers = LayersArray.get(0); + Logger.debug("Validation Layer Count:{}", Layers); var PropertiesBuffer = VkLayerProperties.calloc(Layers, MemStack); vkEnumerateInstanceLayerProperties(LayersArray, PropertiesBuffer); List SupportedLayers = new ArrayList<>(); @@ -114,6 +141,7 @@ public class VulkanInstance { VkLayerProperties properties = PropertiesBuffer.get(i); String LayerName = properties.layerNameString(); SupportedLayers.add(LayerName); + Logger.trace("Supported Layer [{}]", LayerName); } List LayersToUse = new ArrayList<>(); if (SupportedLayers.contains(VALIDATION_LAYER)) { @@ -123,10 +151,39 @@ public class VulkanInstance { } } public void cleanup() { + Logger.debug("Closing Vulkan instance"); + if(DebugHandle != VK_NULL_HANDLE){ + vkDestroyDebugUtilsMessengerEXT(vkInstance, DebugHandle, null); + } vkDestroyInstance(vkInstance, null); + if(DebugUtils != null){ + DebugUtils.pfnUserCallback().free(); + DebugUtils.free(); + } } public VkInstance getVkInstance() { return vkInstance; } + + private static VkDebugUtilsMessengerCreateInfoEXT CreateDebugCallBack(){ + return VkDebugUtilsMessengerCreateInfoEXT + .calloc() + .sType$Default() + .messageSeverity(MESSAGE_SEVERITY_BITMASK) + .messageType(MESSAGE_TYPE_BITMASK) + .pfnUserCallback((messageSeverity, messageTypes, pCallbackData,pUserData) -> { + VkDebugUtilsMessengerCallbackDataEXT callBackData = VkDebugUtilsMessengerCallbackDataEXT.create(pCallbackData); + if ((messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT) != 0) { + Logger.info(DBG_CALL_BACK_PREF, callBackData.pMessageString()); + } else if ((messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) != 0) { + Logger.warn(DBG_CALL_BACK_PREF, callBackData.pMessageString()); + } else if ((messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) != 0) { + Logger.error(DBG_CALL_BACK_PREF, callBackData.pMessageString()); + } else { + Logger.debug(DBG_CALL_BACK_PREF, callBackData.pMessageString()); + } + return VK_FALSE; + }); + } } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Display/Window.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Display/Window.java index 4cdd583..1a69acf 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Display/Window.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Display/Window.java @@ -2,7 +2,7 @@ package net.halbear.Terrain4J.EngineCore.Display; import net.halbear.Terrain4J.EngineCore.Input.KeyboardInput; import net.halbear.Terrain4J.EngineCore.Input.MouseListener; -import net.halbear.Terrain4J.EngineCore.Logic.Globals; +import net.halbear.Terrain4J.EngineCore.Logic.EngineConfig; import org.lwjgl.glfw.GLFWVidMode; import org.lwjgl.system.MemoryUtil; @@ -48,7 +48,7 @@ public class Window { }); glfwMakeContextCurrent(handle); - if (Globals.VSYNC) glfwSwapInterval(1); + if (EngineConfig.VSYNC) glfwSwapInterval(1); else glfwSwapInterval(0); mouseInput = new MouseListener(handle); } @@ -69,22 +69,22 @@ public class Window { return mouseInput; } public void pollEvents() { - if (displayFPS) glfwSetWindowTitle(handle, "Terrain 4J Engine - FPS: " + Globals.FrameRate_PRIMARYTHREAD + " TPS: " + Globals.TPS + " RenderFPS: " + Globals.FrameRate_RENDER + " VSYNC: " + Globals.VSYNC); + if (displayFPS) glfwSetWindowTitle(handle, "Terrain 4J Engine - FPS: " + EngineConfig.FrameRate_PRIMARYTHREAD + " TPS: " + EngineConfig.TPS + " RenderFPS: " + EngineConfig.FrameRate_RENDER + " VSYNC: " + EngineConfig.VSYNC); if (keyboardInput.keySinglePress(GLFW_KEY_V)) { SetVsync(); } keyboardInput.input(); mouseInput.input(); - Globals.RENDERFRAMES++; + EngineConfig.RENDERFRAMES++; } public void SetVsync(){ - if (Globals.VSYNC) { + if (EngineConfig.VSYNC) { glfwSwapInterval(0); - Globals.VSYNC = false; + EngineConfig.VSYNC = false; } else { glfwSwapInterval(1); - Globals.VSYNC = true; + EngineConfig.VSYNC = true; } } public void setShouldClose() { diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Globals.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Globals.java deleted file mode 100644 index 7963beb..0000000 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Globals.java +++ /dev/null @@ -1,95 +0,0 @@ -package net.halbear.Terrain4J.EngineCore.Logic; - -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Properties; -import java.util.logging.Logger; - -public class Globals { - private static final long DEFAULT_ACCURACY = 0; - private static final int DEFAULT_TICKRATE = 60; - private static final int DEFAULT_WIDTH = 640; - private static final int DEFAULT_HEIGHT = 480; - private static final String FILENAME = "terrain4j.properties"; - private static Globals instance; - private long accuracy; - private int TickRate; - private int Width; - private int Height; - public static int FrameRate_PRIMARYTHREAD =0; - public static int TPS =0; - public static int FrameRate_MAINENGINETHREAD =0; - public static int FrameRate_RENDER =0; - public static int RENDERFRAMES =0; - public static boolean VSYNC = false; - private boolean vkValidated; - - - private Globals() { - var EngineConfig = new Properties(); - Path path = Paths.get(""); - InputStream stream = Globals.class.getResourceAsStream(path.toAbsolutePath().toString() + "/" + FILENAME); - boolean SuccessfulLoad = false; - if (stream != null) { - try { - EngineConfig.load(stream); - SuccessfulLoad = true; - } catch (IOException excp) { - System.out.println(excp.getMessage()); - } - } - if (SuccessfulLoad){ - accuracy = Long.parseLong(EngineConfig.getOrDefault("frame_accuracy", DEFAULT_ACCURACY).toString()); - TickRate = Integer.parseInt(EngineConfig.getOrDefault("main_tick_rate", DEFAULT_TICKRATE).toString()); - Width = Integer.parseInt(EngineConfig.getOrDefault("display_width", DEFAULT_TICKRATE).toString()); - Height = Integer.parseInt(EngineConfig.getOrDefault("display_height", DEFAULT_TICKRATE).toString()); - VSYNC = Boolean.parseBoolean(EngineConfig.getOrDefault("vsync", false).toString()); - try { - assert stream != null; - stream.close(); - } catch(IOException excp) { - System.out.println(excp.getMessage()); - } - } else{ - try { - EngineConfig.setProperty("frame_accuracy", "0"); - EngineConfig.setProperty("main_tick_rate", "60"); - EngineConfig.setProperty("display_width", "640"); - EngineConfig.setProperty("display_height", "480"); - EngineConfig.setProperty("vsync", "false"); - EngineConfig.store(new FileWriter(path.toAbsolutePath().toString() + "/" + FILENAME), "created new properties file"); - } catch (IOException excp2) { - System.out.println(excp2.getMessage()); - } - accuracy = DEFAULT_ACCURACY; - TickRate = DEFAULT_TICKRATE; - } - vkValidated = Boolean.parseBoolean(EngineConfig.getOrDefault("vkValidated", false).toString()); - } - - public boolean VkValidated(){ - return vkValidated; - } - - public static synchronized Globals getInstance() { - if (instance == null) { - instance = new Globals(); - } - return instance; - } - public int getWidth(){ - return Width; - } - public int getHeight(){ - return Height; - } - public long getAccuracy() { - return accuracy; - } - public int getTickRate() { - return TickRate; - } -} diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/VulkanContext.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/VulkanContext.java index 4708154..e0d4f1c 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/VulkanContext.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/VulkanContext.java @@ -5,7 +5,7 @@ import net.halbear.Terrain4J.EngineCore.Display.VulkanInstance; public class VulkanContext { private final VulkanInstance Instance; public VulkanContext(){ - var EngineGlobals = Globals.getInstance(); + var EngineGlobals = EngineConfig.getInstance(); Instance = new VulkanInstance(EngineGlobals.VkValidated()); } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/PrimaryRuntime.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/PrimaryRuntime.java index 0196c11..7580474 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/PrimaryRuntime.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/PrimaryRuntime.java @@ -2,7 +2,7 @@ package net.halbear.Terrain4J.EngineCore.Main; import net.halbear.Terrain4J.EngineCore.Display.Render; import net.halbear.Terrain4J.EngineCore.Display.Window; -import net.halbear.Terrain4J.EngineCore.Logic.Globals; +import net.halbear.Terrain4J.EngineCore.Logic.EngineConfig; import net.halbear.Terrain4J.EngineCore.Logic.EngineInstance; import net.halbear.Terrain4J.EngineCore.Logic.GameLogic; @@ -42,11 +42,11 @@ public class PrimaryRuntime { FrameDiff += tickDiff; TickDiff += tickDiff; SecondCounter += tickDiff; - if (FrameDiff >= Globals.getInstance().getAccuracy()){ + if (FrameDiff >= EngineConfig.getInstance().getAccuracy()){ window.pollEvents(); gameLogic.Input(engineInstance, (now - InitialTime)/ 1000000); Frames++; - if (TickDiff/1000 >= (double) 1000000 / (double)Globals.getInstance().getTickRate()) { + if (TickDiff/1000 >= (double) 1000000 / (double) EngineConfig.getInstance().getTickRate()) { TickFrames++; long nsTimeDiff = now - updateTime; gameLogic.Update(engineInstance, nsTimeDiff / 1000000); @@ -56,12 +56,12 @@ public class PrimaryRuntime { if (SecondCounter >= 1000000000){ SecondCounter = 0; System.out.println("FPS: " + Frames + " Ticks: " + TickFrames); - Globals.FrameRate_PRIMARYTHREAD = Frames; - Globals.FrameRate_RENDER = Globals.RENDERFRAMES; - Globals.TPS = TickFrames; + EngineConfig.FrameRate_PRIMARYTHREAD = Frames; + EngineConfig.FrameRate_RENDER = EngineConfig.RENDERFRAMES; + EngineConfig.TPS = TickFrames; Frames = 0; TickFrames = 0; - Globals.RENDERFRAMES = 0; + EngineConfig.RENDERFRAMES = 0; } render.render(engineInstance); FrameDiff = 0; diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Vulkan/Util/VulkanUtils.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Vulkan/Util/VulkanUtils.java index e12c5ae..0f5df88 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Vulkan/Util/VulkanUtils.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Vulkan/Util/VulkanUtils.java @@ -21,9 +21,9 @@ public class VulkanUtils { return result; } - public static void vkCheck(int err, String errMsg) { - if (err != VK_SUCCESS) { - String errCode = switch (err) { + public static void vkCheck(int Error, String ErrorMessage) { + if (Error != VK_SUCCESS) { + String ErrorCode = switch (Error) { case VK_NOT_READY -> "VK_NOT_READY"; case VK_TIMEOUT -> "VK_TIMEOUT"; case VK_EVENT_SET -> "VK_EVENT_SET"; @@ -44,7 +44,7 @@ public class VulkanUtils { case VK_ERROR_UNKNOWN -> "VK_ERROR_UNKNOWN"; default -> "Not mapped"; }; - throw new RuntimeException(errMsg + ": " + errCode + " [" + err + "]"); + throw new RuntimeException(ErrorMessage + ": " + ErrorCode + " [" + Error + "]"); } } }