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 + "]");
}
}
}