From aefbe17786e0d30d160c8c082e3619a0c0930d73 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Mon, 25 Nov 2024 17:08:25 -0600 Subject: [PATCH] Replace dawnlibs with dawn.hpp --- src/dawn/assert/assert.hpp | 2 +- src/dawn/asset/AssetDataLoader.cpp | 24 ++++++++-------- src/dawn/asset/AssetDataLoader.hpp | 2 +- src/dawn/asset/AssetLoader.hpp | 2 +- src/dawn/asset/AssetManager.hpp | 2 +- src/dawn/audio/IAudioManager.hpp | 2 +- src/dawn/component/Registry.cpp | 12 ++++++++ src/dawn/component/Registry.hpp | 11 +++++++ src/dawn/{dawnlibs.hpp => dawn.hpp} | 0 src/dawn/display/Color.hpp | 2 +- src/dawn/display/IRenderHost.hpp | 2 +- src/dawn/display/RenderPipeline.hpp | 2 +- src/dawn/display/font/TrueTypeCharacter.hpp | 2 +- src/dawn/display/mesh/IMesh.hpp | 2 +- src/dawn/display/shader/IShader.hpp | 2 +- src/dawn/display/shader/IShaderStage.hpp | 2 +- src/dawn/environment/Environment.hpp | 2 +- src/dawn/event/CustomEvent.hpp | 2 +- src/dawn/event/Event.hpp | 2 +- src/dawn/game/Game.hpp | 2 +- src/dawn/locale/LocaleManager.cpp | 4 +++ src/dawn/save/SaveFile.hpp | 2 +- src/dawn/scene/SceneComponent.hpp | 2 +- src/dawn/scene/item/SceneItemTransform.hpp | 2 +- src/dawn/time/ITimeManager.hpp | 2 +- src/dawn/util/Flag.hpp | 2 +- src/dawn/util/Math.hpp | 2 +- src/dawn/util/String.hpp | 2 +- src/dawnlinux/CMakeLists.txt | 6 ---- src/dawnlinux/main.cpp | 32 ++++++++++++--------- src/dawnlinux/main.hpp | 2 +- src/dawnopengl/assert/assertgl.hpp | 2 +- src/dawnrpg/scene/HelloWorldScene.cpp | 6 ++-- 33 files changed, 86 insertions(+), 59 deletions(-) create mode 100644 src/dawn/component/Registry.cpp create mode 100644 src/dawn/component/Registry.hpp rename src/dawn/{dawnlibs.hpp => dawn.hpp} (100%) diff --git a/src/dawn/assert/assert.hpp b/src/dawn/assert/assert.hpp index 223b4b06..561b11ed 100644 --- a/src/dawn/assert/assert.hpp +++ b/src/dawn/assert/assert.hpp @@ -6,7 +6,7 @@ */ #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" /** * Asserts that a given statement must evaluate to true or the assertion fails diff --git a/src/dawn/asset/AssetDataLoader.cpp b/src/dawn/asset/AssetDataLoader.cpp index 5918d321..52b25da4 100644 --- a/src/dawn/asset/AssetDataLoader.cpp +++ b/src/dawn/asset/AssetDataLoader.cpp @@ -97,16 +97,16 @@ bool_t AssetDataLoader::isOpen() { } void AssetDataLoader::open() { - assertNull(this->assetArchiveFile, "AssetDataLoader::open: File is already open"); - assertNull(this->assetArchive, "AssetDataLoader::open: Archive is already open"); - assertNull(this->assetArchiveEntry, "AssetDataLoader::open: Entry is already open"); + assertNull(this->assetArchiveFile, "File is already open"); + assertNull(this->assetArchive, "Archive is already open"); + assertNull(this->assetArchiveEntry, "Entry is already open"); this->assetArchiveFile = this->openAssetArchiveFile(); - assertNotNull(this->assetArchiveFile, "AssetDataLoader::open: Failed to open archive file!"); + assertNotNull(this->assetArchiveFile, "Failed to open archive file!"); // Open archive reader assetArchive = archive_read_new(); - assertNotNull(assetArchive, "AssetDataLoader::open: Failed to create archive reader"); + assertNotNull(assetArchive, "Failed to create archive reader"); // Set up the reader archive_read_support_format_tar(assetArchive); @@ -119,7 +119,7 @@ void AssetDataLoader::open() { archive_read_set_callback_data(assetArchive, this); int32_t ret = archive_read_open1(assetArchive); - assertTrue(ret == ARCHIVE_OK, "AssetDataLoader::open: Failed to open archive!"); + assertTrue(ret == ARCHIVE_OK, "Failed to open archive!"); position = 0; // Iterate over each file to find the one for this asset loader. @@ -127,20 +127,20 @@ void AssetDataLoader::open() { const char_t *headerFile = (char_t*)archive_entry_pathname(assetArchiveEntry); if(std::string(headerFile) == this->fileName) return; int32_t ret = archive_read_data_skip(assetArchive); - assertTrue(ret == ARCHIVE_OK, "AssetDataLoader::open: Failed to skip data!"); + assertTrue(ret == ARCHIVE_OK, "Failed to skip data!"); } - assertUnreachable("AssetDataLoader::open: Failed to find file!"); + assertUnreachable("Failed to find file!"); } int32_t AssetDataLoader::close() { - assertNotNull(this->assetArchiveFile, "AssetDataLoader::close: File is NULL"); - assertNotNull(this->assetArchive, "AssetDataLoader::close: Archive is NULL!"); - assertNotNull(this->assetArchiveEntry, "AssetDataLoader::close: Entry is NULL!"); + assertNotNull(this->assetArchiveFile, "File is NULL"); + assertNotNull(this->assetArchive, "Archive is NULL!"); + assertNotNull(this->assetArchiveEntry, "Entry is NULL!"); // Close the archive int32_t ret = archive_read_free(this->assetArchive); - assertTrue(ret == ARCHIVE_OK, "AssetDataLoader::close: Failed to close archive!"); + assertTrue(ret == ARCHIVE_OK, "Failed to close archive!"); this->assetArchive = nullptr; this->assetArchiveEntry = nullptr; diff --git a/src/dawn/asset/AssetDataLoader.hpp b/src/dawn/asset/AssetDataLoader.hpp index dc95d1f8..926602b9 100644 --- a/src/dawn/asset/AssetDataLoader.hpp +++ b/src/dawn/asset/AssetDataLoader.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" extern "C" { #include diff --git a/src/dawn/asset/AssetLoader.hpp b/src/dawn/asset/AssetLoader.hpp index 563904fa..a9d78a2e 100644 --- a/src/dawn/asset/AssetLoader.hpp +++ b/src/dawn/asset/AssetLoader.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { class AssetLoader { diff --git a/src/dawn/asset/AssetManager.hpp b/src/dawn/asset/AssetManager.hpp index 46d2ad3e..ca1a6f27 100644 --- a/src/dawn/asset/AssetManager.hpp +++ b/src/dawn/asset/AssetManager.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" #include "asset/AssetLoader.hpp" namespace Dawn { diff --git a/src/dawn/audio/IAudioManager.hpp b/src/dawn/audio/IAudioManager.hpp index 97327515..e69eb9f4 100644 --- a/src/dawn/audio/IAudioManager.hpp +++ b/src/dawn/audio/IAudioManager.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { class IAudioManager { diff --git a/src/dawn/component/Registry.cpp b/src/dawn/component/Registry.cpp new file mode 100644 index 00000000..5e00bd1a --- /dev/null +++ b/src/dawn/component/Registry.cpp @@ -0,0 +1,12 @@ +// Copyright (c) 2024 Dominic Masters +// +// This software is released under the MIT License. +// https://opensource.org/licenses/MIT + +#include "Registry.hpp" + +using namespace Dawn; + +void Dawn::someFunction(const char_t *someParam) { + printf("Hello, %s!\n", someParam); +} \ No newline at end of file diff --git a/src/dawn/component/Registry.hpp b/src/dawn/component/Registry.hpp new file mode 100644 index 00000000..ba06050c --- /dev/null +++ b/src/dawn/component/Registry.hpp @@ -0,0 +1,11 @@ +// Copyright (c) 2024 Dominic Masters +// +// This software is released under the MIT License. +// https://opensource.org/licenses/MIT + +#pragma once +#include "dawn.hpp" + +namespace Dawn { + static void someFunction(const char_t *someParam); +} \ No newline at end of file diff --git a/src/dawn/dawnlibs.hpp b/src/dawn/dawn.hpp similarity index 100% rename from src/dawn/dawnlibs.hpp rename to src/dawn/dawn.hpp diff --git a/src/dawn/display/Color.hpp b/src/dawn/display/Color.hpp index d639ba61..25882a15 100644 --- a/src/dawn/display/Color.hpp +++ b/src/dawn/display/Color.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { struct ColorU8 { diff --git a/src/dawn/display/IRenderHost.hpp b/src/dawn/display/IRenderHost.hpp index 88766205..0ab552a9 100644 --- a/src/dawn/display/IRenderHost.hpp +++ b/src/dawn/display/IRenderHost.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" #include "display/RenderTarget.hpp" #include "display/RenderPipeline.hpp" #include "display/shader/ShaderManager.hpp" diff --git a/src/dawn/display/RenderPipeline.hpp b/src/dawn/display/RenderPipeline.hpp index 8da4f262..b002f6e8 100644 --- a/src/dawn/display/RenderPipeline.hpp +++ b/src/dawn/display/RenderPipeline.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { class Game; diff --git a/src/dawn/display/font/TrueTypeCharacter.hpp b/src/dawn/display/font/TrueTypeCharacter.hpp index f4e04451..cccec5e3 100644 --- a/src/dawn/display/font/TrueTypeCharacter.hpp +++ b/src/dawn/display/font/TrueTypeCharacter.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { struct TrueTypeCharacter { diff --git a/src/dawn/display/mesh/IMesh.hpp b/src/dawn/display/mesh/IMesh.hpp index 32df33a2..f5b8a963 100644 --- a/src/dawn/display/mesh/IMesh.hpp +++ b/src/dawn/display/mesh/IMesh.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { enum MeshDrawMode { diff --git a/src/dawn/display/shader/IShader.hpp b/src/dawn/display/shader/IShader.hpp index b35aadd5..d83d5912 100644 --- a/src/dawn/display/shader/IShader.hpp +++ b/src/dawn/display/shader/IShader.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { enum class ShaderParameterType { diff --git a/src/dawn/display/shader/IShaderStage.hpp b/src/dawn/display/shader/IShaderStage.hpp index fae14b94..87095e44 100644 --- a/src/dawn/display/shader/IShaderStage.hpp +++ b/src/dawn/display/shader/IShaderStage.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { enum class ShaderStageType { diff --git a/src/dawn/environment/Environment.hpp b/src/dawn/environment/Environment.hpp index e4fd3c25..552cb89c 100644 --- a/src/dawn/environment/Environment.hpp +++ b/src/dawn/environment/Environment.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { class Environment { diff --git a/src/dawn/event/CustomEvent.hpp b/src/dawn/event/CustomEvent.hpp index a2622dbb..9ac21bb5 100644 --- a/src/dawn/event/CustomEvent.hpp +++ b/src/dawn/event/CustomEvent.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { enum class CustomEventResult { diff --git a/src/dawn/event/Event.hpp b/src/dawn/event/Event.hpp index 5204a029..1cdeb4d9 100644 --- a/src/dawn/event/Event.hpp +++ b/src/dawn/event/Event.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { template diff --git a/src/dawn/game/Game.hpp b/src/dawn/game/Game.hpp index 15772ecf..31a09bc0 100644 --- a/src/dawn/game/Game.hpp +++ b/src/dawn/game/Game.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" #include "display/RenderHost.hpp" #include "input/InputManager.hpp" #include "time/TimeManager.hpp" diff --git a/src/dawn/locale/LocaleManager.cpp b/src/dawn/locale/LocaleManager.cpp index f5d2146f..540e3050 100644 --- a/src/dawn/locale/LocaleManager.cpp +++ b/src/dawn/locale/LocaleManager.cpp @@ -25,6 +25,10 @@ std::string LocaleManager::getString( const std::unordered_map replacements ) { assertNotNull(languageAsset, "Language asset cannot be null."); + assertTrue( + languageAsset->loaded, + "Language asset must be loaded before attempting to get a string." + ); // Key comes in like "main_menu.new_game", which would be; // data["main_menu"]["new_game"], so we need to split by dot and iterate. diff --git a/src/dawn/save/SaveFile.hpp b/src/dawn/save/SaveFile.hpp index a44f529c..09b96efc 100644 --- a/src/dawn/save/SaveFile.hpp +++ b/src/dawn/save/SaveFile.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { class SaveManager; diff --git a/src/dawn/scene/SceneComponent.hpp b/src/dawn/scene/SceneComponent.hpp index 426e0005..46ee460a 100644 --- a/src/dawn/scene/SceneComponent.hpp +++ b/src/dawn/scene/SceneComponent.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" #define SCENE_COMPONENT_STATE_INIT 0x01 #define SCENE_COMPONENT_STATE_DISPOSED 0x02 diff --git a/src/dawn/scene/item/SceneItemTransform.hpp b/src/dawn/scene/item/SceneItemTransform.hpp index c360b5bb..a5c06579 100644 --- a/src/dawn/scene/item/SceneItemTransform.hpp +++ b/src/dawn/scene/item/SceneItemTransform.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { class SceneItem; diff --git a/src/dawn/time/ITimeManager.hpp b/src/dawn/time/ITimeManager.hpp index b0e7fc8b..27fb54a1 100644 --- a/src/dawn/time/ITimeManager.hpp +++ b/src/dawn/time/ITimeManager.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { class ITimeManager { diff --git a/src/dawn/util/Flag.hpp b/src/dawn/util/Flag.hpp index 9c5c3eb5..f2e63b0d 100644 --- a/src/dawn/util/Flag.hpp +++ b/src/dawn/util/Flag.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { class Flag final { diff --git a/src/dawn/util/Math.hpp b/src/dawn/util/Math.hpp index 1723fbb3..549fd22f 100644 --- a/src/dawn/util/Math.hpp +++ b/src/dawn/util/Math.hpp @@ -6,7 +6,7 @@ */ #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" #define MATH_PI 3.1415926535897f diff --git a/src/dawn/util/String.hpp b/src/dawn/util/String.hpp index a2d45dde..dce7d94e 100644 --- a/src/dawn/util/String.hpp +++ b/src/dawn/util/String.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" namespace Dawn { class String { diff --git a/src/dawnlinux/CMakeLists.txt b/src/dawnlinux/CMakeLists.txt index 8fdb7f82..acf3a4ef 100644 --- a/src/dawnlinux/CMakeLists.txt +++ b/src/dawnlinux/CMakeLists.txt @@ -15,12 +15,6 @@ target_include_directories(${DAWN_TARGET_NAME} ${CMAKE_CURRENT_LIST_DIR} ) -# Platform variables -# target_compile_definitions(${DAWN_TARGET_NAME} -# PUBLIC -# DAWN_ASSET_LOCATION="../../assets.tar" -# ) - # Sources target_sources(${DAWN_TARGET_NAME} PRIVATE diff --git a/src/dawnlinux/main.cpp b/src/dawnlinux/main.cpp index 47e26ed8..e26b1e4c 100644 --- a/src/dawnlinux/main.cpp +++ b/src/dawnlinux/main.cpp @@ -27,6 +27,8 @@ FILE * AssetDataLoader::openAssetArchiveFile() { int32_t main(int32_t argc, const char **argv) { //Set the path assertTrue(argc > 0, "No executable path provided."); + assertNotNull(argv, "No executable path provided."); + assertNotNull(argv[0], "No executable path provided."); environment.setVariable("executablePath", argv[0]); auto execPath = fs::path(environment.getVariable("executablePath")); @@ -36,20 +38,24 @@ int32_t main(int32_t argc, const char **argv) { // Find the assets std::vector pathsToTryAndFindAssets = { - execDir / "assets.tar", - execDir / "assets.zip", - execDir / "data" / "assets.tar", - execDir / "data" / "assets.zip", - execDir.parent_path() / "assets.tar", - execDir.parent_path() / "assets.zip", - execDir.parent_path() / "data" / "assets.tar", - execDir.parent_path() / "data" / "assets.zip", - execDir.parent_path().parent_path() / "assets.tar", - execDir.parent_path().parent_path() / "assets.zip", - execDir.parent_path().parent_path() / "data" / "assets.tar", - execDir.parent_path().parent_path() / "data" / "assets.zip" + execDir / "dawn.tar", + execDir / "dawn.zip", + execDir / "data" / "dawn.tar", + execDir / "data" / "dawn.zip", + execDir.parent_path() / "dawn.tar", + execDir.parent_path() / "dawn.zip", + execDir.parent_path() / "data" / "dawn.tar", + execDir.parent_path() / "data" / "dawn.zip", + execDir.parent_path().parent_path() / "dawn.tar", + execDir.parent_path().parent_path() / "dawn.zip", + execDir.parent_path().parent_path() / "data" / "dawn.tar", + execDir.parent_path().parent_path() / "data" / "dawn.zip" }; - auto matchingPathIfAny = std::find_if(pathsToTryAndFindAssets.begin(), pathsToTryAndFindAssets.end(), [](const fs::path &p) { + auto matchingPathIfAny = std::find_if( + pathsToTryAndFindAssets.begin(), + pathsToTryAndFindAssets.end(), + [](const fs::path &p + ) { return fs::exists(p); }); diff --git a/src/dawnlinux/main.hpp b/src/dawnlinux/main.hpp index 242c021e..4deb4912 100644 --- a/src/dawnlinux/main.hpp +++ b/src/dawnlinux/main.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" /** * The main entry point for the program. diff --git a/src/dawnopengl/assert/assertgl.hpp b/src/dawnopengl/assert/assertgl.hpp index 9364327d..9d09df7d 100644 --- a/src/dawnopengl/assert/assertgl.hpp +++ b/src/dawnopengl/assert/assertgl.hpp @@ -4,7 +4,7 @@ // https://opensource.org/licenses/MIT #pragma once -#include "dawnlibs.hpp" +#include "dawn.hpp" /** * Asserts that there are no OpenGL errors. diff --git a/src/dawnrpg/scene/HelloWorldScene.cpp b/src/dawnrpg/scene/HelloWorldScene.cpp index 77b5958a..c8a6c94c 100644 --- a/src/dawnrpg/scene/HelloWorldScene.cpp +++ b/src/dawnrpg/scene/HelloWorldScene.cpp @@ -14,9 +14,9 @@ using namespace Dawn; void Dawn::helloWorldScene(Scene &s) { - // while(!s.getGame()->assetManager.isLoaded(font)) { - // s.getGame()->assetManager.update(); - // } + while(!s.getGame()->assetManager.isEverythingLoaded()) { + s.getGame()->assetManager.update(); + } auto cameraItem = s.createSceneItem(); auto camera = cameraItem->addComponent();