From 1f585b4d8ebfb427db42799cb361270f9688091b Mon Sep 17 00:00:00 2001 From: Piotr Krygier Date: Fri, 26 Jan 2024 14:24:39 +0100 Subject: [PATCH] Refactoring Cleaned up a project, removed uneccessary includes. Fixed few errors, nothing major. --- .gitignore | 6 +++++- CMakeLists.txt | 26 ++------------------------ README.md | 3 ++- graphics/src/rse_graphics.c | 2 +- graphics/src/rse_vulkan_commands.c | 3 ++- graphics/src/rse_vulkan_commands.h | 3 +-- graphics/src/rse_vulkan_image.c | 10 +++++----- graphics/src/rse_vulkan_image.h | 7 ++++--- graphics/src/vulkan_base.c | 7 +++---- graphics/src/vulkan_base.h | 5 +---- graphics/src/vulkan_buffers.c | 3 +-- graphics/src/vulkan_descriptors.c | 5 +---- graphics/src/vulkan_descriptors.h | 3 +-- graphics/src/vulkan_pipeline.c | 6 ++---- graphics/src/vulkan_pipeline.h | 3 --- graphics/src/window.c | 3 ++- graphics/src/window.h | 3 +-- red_scarf_engine/src/main.c | 2 +- tests/src/rse_graphics_tests.c | 7 ++----- utilities/rse_commons.h | 3 ++- 20 files changed, 39 insertions(+), 71 deletions(-) diff --git a/.gitignore b/.gitignore index dc8667ba..95365cdc 100644 --- a/.gitignore +++ b/.gitignore @@ -39,4 +39,8 @@ bin/* .vscode/ # Third party libraires -third_party/ \ No newline at end of file +third_party/ + +# Cache folder +.cache/ + diff --git a/CMakeLists.txt b/CMakeLists.txt index b65c92aa..16860245 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,34 +4,12 @@ project("RedScarfEngine" DESCRIPTION "Vulkan based 3D engine" LANGUAGES C CXX) - -# make sure c++ 20 is set -set(CMAKE_CXX_STANDARD 20)# turn on the dynamic depends for ninja -set(CMAKE_C_STANDARD 23)# turn on the dynamic depends for ninja -# set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) -# Enable C++ modules -# set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "3c375311-a3c9-4396-a187-3227ef642046") - -# if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") -# include(gcc_modules.cmake) -# endif() - -# string(CONCAT CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE -# " " -# " -MT -MD -MF " -# " ${flags_to_scan_deps} -fdep-file= -fdep-output=" -# ) - -# set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FORMAT "gcc") -# set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FLAG -# "${compiler_flags_for_module_map} -fmodule-mapper=") - +set(CMAKE_C_STANDARD 23) set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror") - add_subdirectory(red_scarf_engine) add_subdirectory(utilities) add_subdirectory(graphics) -add_subdirectory(tests) \ No newline at end of file +add_subdirectory(tests) diff --git a/README.md b/README.md index 7d40c16a..a96d4861 100644 --- a/README.md +++ b/README.md @@ -1 +1,2 @@ -# Red Scarf Engine \ No newline at end of file +# Red Scarf Engine + diff --git a/graphics/src/rse_graphics.c b/graphics/src/rse_graphics.c index 9441a686..95756125 100644 --- a/graphics/src/rse_graphics.c +++ b/graphics/src/rse_graphics.c @@ -34,7 +34,7 @@ rse_err_t rse_graphics_init(void) void rse_graphics_test_function(void) { rse_err_t status = RSE_ERROR_NO_ERROR; - uint8_t tex_id_2 = 0; + uint16_t tex_id_2 = 0; status = rse_load_texture("../../test_image.png", &tex_id_2); if (status != RSE_ERROR_NO_ERROR) { diff --git a/graphics/src/rse_vulkan_commands.c b/graphics/src/rse_vulkan_commands.c index 16b24c54..b986a69e 100644 --- a/graphics/src/rse_vulkan_commands.c +++ b/graphics/src/rse_vulkan_commands.c @@ -1,5 +1,6 @@ #include "rse_vulkan_commands.h" +#include "vulkan_commons.h" #include "vulkan_errors.h" #include "locale_vulkan.h" #include "utilities/logger.h" @@ -113,4 +114,4 @@ rse_err_t init_commands() void destroy_commands() { vkDestroyCommandPool(g_vulkan_state.device, g_command_pool, NULL); -} \ No newline at end of file +} diff --git a/graphics/src/rse_vulkan_commands.h b/graphics/src/rse_vulkan_commands.h index 2da268ae..46505e3a 100644 --- a/graphics/src/rse_vulkan_commands.h +++ b/graphics/src/rse_vulkan_commands.h @@ -12,7 +12,6 @@ #ifndef RSE_VULKAN_COMMANDS_H #define RSE_VULKAN_COMMANDS_H -#include "vulkan_commons.h" #include "vk_mem_alloc.h" #include "utilities/rse_commons.h" @@ -43,4 +42,4 @@ VkCommandBuffer rse_begin_single_time_command(); */ void rse_end_single_time_comands(VkCommandBuffer command_buffer); -#endif /* RSE_VULKAN_COMMANDS_H */ \ No newline at end of file +#endif /* RSE_VULKAN_COMMANDS_H */ diff --git a/graphics/src/rse_vulkan_image.c b/graphics/src/rse_vulkan_image.c index 7b1f8cc5..10903817 100644 --- a/graphics/src/rse_vulkan_image.c +++ b/graphics/src/rse_vulkan_image.c @@ -15,7 +15,6 @@ #include #include #include -#include #define IMAGE_TAKEN 1U #define IMAGE_FREE 0U @@ -208,7 +207,7 @@ static rse_err_t create_vulkan_image(uint32_t width, uint32_t height, VkFormat format, unsigned char* pixels, - uint8_t* texture_id) + uint16_t* texture_id) { rse_err_t status = RSE_ERROR_NO_ERROR; struct rse_vulkan_buffer_t staging_buffer = {0}; @@ -222,9 +221,10 @@ static rse_err_t create_vulkan_image(uint32_t width, VkExtent3D image_extent = {0}; VkImageViewCreateInfo image_view_create_info = {0}; struct rse_vulkan_image_t* free_texture_image = NULL; + *texture_id = 0U; - while(free_texture_image == NULL || *texture_id > RSE_MAX_IMAGE_COUNT) { + while(free_texture_image == NULL && *texture_id < RSE_MAX_IMAGE_COUNT) { if(g_texture_images[*texture_id].id_taken == IMAGE_FREE) { free_texture_image = &g_texture_images[*texture_id]; } else { @@ -399,7 +399,7 @@ rse_err_t init_vulkan_images() return status; } -rse_err_t rse_load_texture(const char* file_path, uint8_t* texture_id) +rse_err_t rse_load_texture(const char* file_path, uint16_t* texture_id) { rse_err_t status = RSE_ERROR_NO_ERROR; int width = 0; @@ -493,4 +493,4 @@ rse_err_t find_depth_format(VkFormat* found_format) return status; #undef formats_count -} \ No newline at end of file +} diff --git a/graphics/src/rse_vulkan_image.h b/graphics/src/rse_vulkan_image.h index 7e9dd96a..5dfe5be3 100644 --- a/graphics/src/rse_vulkan_image.h +++ b/graphics/src/rse_vulkan_image.h @@ -15,7 +15,8 @@ #include "utilities/file_utils.h" #include "utilities/rse_commons.h" -#include "vulkan_commons.h" + +#include "vulkan/vulkan_core.h" #include @@ -39,7 +40,7 @@ rse_err_t init_vulkan_images(void); * @param texture_id Texture ID will be set up here * @return rse_err_t RSE_ERROR_NO_ERROR on success */ -rse_err_t rse_load_texture(const char* file_path, uint8_t* texture_id); +rse_err_t rse_load_texture(const char* file_path, uint16_t* texture_id); /** * @brief Destroy all loaded textures. Usefull for closing application or just clearing. @@ -81,4 +82,4 @@ rse_err_t find_depth_format(VkFormat* found_format); VkImageView rse_get_depth_image_view(); -#endif /* RSE_TEXTURE_H */ \ No newline at end of file +#endif /* RSE_TEXTURE_H */ diff --git a/graphics/src/vulkan_base.c b/graphics/src/vulkan_base.c index 713f12d4..804b26ea 100644 --- a/graphics/src/vulkan_base.c +++ b/graphics/src/vulkan_base.c @@ -27,7 +27,6 @@ // #pragma GCC diagnostic pop #include "locale_vulkan.h" -#include "utilities/locale_common.h" #include "utilities/rse_errors_common.h" #include "utilities/logger.h" #include "vulkan_errors.h" @@ -345,7 +344,7 @@ static rse_err_t pick_physical_device() vkEnumeratePhysicalDevices(g_vulkan_instance, &physical_device_count, NULL); if (0 == physical_device_count) { - LOGF(vulkan_messages[VULKAN_ERROR_NO_PHYSICAL_DEVICE_FOUND]); + LOGF(vulkan_messages[VULKAN_NO_PHYSICAL_DEVICES]); return VULKAN_ERROR_NO_PHYSICAL_DEVICE_FOUND; } @@ -527,7 +526,7 @@ static rse_err_t create_memory_allocator() allocator_create_info.pVulkanFunctions = &vulkan_functions; if (VK_SUCCESS != vmaCreateAllocator(&allocator_create_info, &g_vulkan_state.allocator)) { - LOGF(vulkan_messages[VULKAN_ERROR_ALLOCATOR_CREATION_FAILED]); + LOGF(vulkan_messages[VULKAN_ALLOCATOR_CREATION_FAILED]); return VULKAN_ERROR_ALLOCATOR_CREATION_FAILED; } @@ -692,4 +691,4 @@ void deinit_vulkan() #endif vkDestroySurfaceKHR(g_vulkan_instance, g_vulkan_state.surface, NULL); vkDestroyInstance(g_vulkan_instance, NULL); -} \ No newline at end of file +} diff --git a/graphics/src/vulkan_base.h b/graphics/src/vulkan_base.h index 12a72792..5530e9a0 100644 --- a/graphics/src/vulkan_base.h +++ b/graphics/src/vulkan_base.h @@ -12,11 +12,8 @@ #ifndef RSE_GRAPHICS_VULKANBASE_H #define RSE_GRAPHICS_VULKANBASE_H -#include - #include -#include "vulkan_commons.h" #include "utilities/rse_commons.h" /** @@ -46,4 +43,4 @@ void deinit_vulkan(); */ rse_err_t draw_frame(); -#endif /* RSE_GRAPHICS_VULKANBASE_HPP */ \ No newline at end of file +#endif /* RSE_GRAPHICS_VULKANBASE_HPP */ diff --git a/graphics/src/vulkan_buffers.c b/graphics/src/vulkan_buffers.c index 28f080c4..9f9a40df 100644 --- a/graphics/src/vulkan_buffers.c +++ b/graphics/src/vulkan_buffers.c @@ -4,7 +4,6 @@ #include "locale_vulkan.h" #include "utilities/logger.h" #include "utilities/rse_errors_common.h" -#include "mesh_controller.h" #include "rse_math.h" #include "rse_vulkan_commands.h" @@ -431,4 +430,4 @@ void destroy_buffers() for(i = 0; i < MAX_MESH_NUMBER; ++i) { vmaDestroyBuffer(g_vulkan_state.allocator, g_instance_buffers[i].buffer, g_instance_buffers[i].allocation); } -} \ No newline at end of file +} diff --git a/graphics/src/vulkan_descriptors.c b/graphics/src/vulkan_descriptors.c index c5b27cf3..6731979d 100644 --- a/graphics/src/vulkan_descriptors.c +++ b/graphics/src/vulkan_descriptors.c @@ -7,9 +7,6 @@ #include "vulkan_commons.h" #include "rse_vulkan_image.h" -#include "vulkan/vulkan.h" - - VkDescriptorPool gDescriptorPool; VkDescriptorPool gDescriptorPool_bindless; @@ -155,4 +152,4 @@ void destroy_descriptors() vkDestroyDescriptorPool(g_vulkan_state.device, gDescriptorPool_bindless, NULL); vkDestroyDescriptorSetLayout(g_vulkan_state.device, g_vulkan_state.descriptor_set_layout, NULL); vkDestroyDescriptorSetLayout(g_vulkan_state.device, g_vulkan_state.descriptor_set_layout_bindless, NULL); -} \ No newline at end of file +} diff --git a/graphics/src/vulkan_descriptors.h b/graphics/src/vulkan_descriptors.h index 1acfa2bf..ab23bc91 100644 --- a/graphics/src/vulkan_descriptors.h +++ b/graphics/src/vulkan_descriptors.h @@ -1,7 +1,6 @@ #ifndef RSE_VULKAN_DESCRIPTORS_H #define RSE_VULKAN_DESCRIPTORS_H -#include #include "utilities/rse_commons.h" @@ -21,4 +20,4 @@ rse_err_t create_descriptors(); */ void destroy_descriptors(); -#endif /* RSE_VULKAN_DESCRIPTORS_H */ \ No newline at end of file +#endif /* RSE_VULKAN_DESCRIPTORS_H */ diff --git a/graphics/src/vulkan_pipeline.c b/graphics/src/vulkan_pipeline.c index 5c4cac5f..f811bddd 100644 --- a/graphics/src/vulkan_pipeline.c +++ b/graphics/src/vulkan_pipeline.c @@ -5,11 +5,9 @@ #include "utilities/logger.h" #include "utilities/rse_errors_common.h" #include "vulkan_errors.h" -#include "mesh_controller.h" #include "rse_vulkan_image.h" #include "vulkan_descriptors.h" - -#include "vulkan/vulkan.h" +#include "vulkan_commons.h" #include #include @@ -812,4 +810,4 @@ void destroy_pipeline() for (size_t i = 0; i < SHADER_MODULES_COUNT; i++) { vkDestroyShaderModule(g_vulkan_state.device, g_shader_modules[i], NULL); } -} \ No newline at end of file +} diff --git a/graphics/src/vulkan_pipeline.h b/graphics/src/vulkan_pipeline.h index 8f09e186..79819dbf 100644 --- a/graphics/src/vulkan_pipeline.h +++ b/graphics/src/vulkan_pipeline.h @@ -1,11 +1,8 @@ #ifndef RSE_VULKAN_PIPELINE_H #define RSE_VULKAN_PIPELINE_H -#include "vulkan_commons.h" #include "utilities/rse_commons.h" -#include - /** * @brief Create a graphics pipeline * diff --git a/graphics/src/window.c b/graphics/src/window.c index 9805dcfd..d819c3f6 100644 --- a/graphics/src/window.c +++ b/graphics/src/window.c @@ -12,6 +12,7 @@ #include "window.h" #include "locale_window.h" +#include "rse_window_errors.h" #include "utilities/logger.h" #include "utilities/rse_errors_common.h" #include "vulkan_base.h" @@ -105,4 +106,4 @@ void window_terminate() GLFWwindow* get_window_handle() { return g_window_handle; -} \ No newline at end of file +} diff --git a/graphics/src/window.h b/graphics/src/window.h index 491b55cb..520809a5 100644 --- a/graphics/src/window.h +++ b/graphics/src/window.h @@ -17,7 +17,6 @@ /* Vulkan header MUST be included before glfw */ #include -#include "rse_window_errors.h" #include "utilities/rse_commons.h" /** @@ -46,4 +45,4 @@ void window_terminate(); GLFWwindow* get_window_handle(); -#endif /* RSE_WINDOW_H */ \ No newline at end of file +#endif /* RSE_WINDOW_H */ diff --git a/red_scarf_engine/src/main.c b/red_scarf_engine/src/main.c index 0c08f888..ec4df2cd 100644 --- a/red_scarf_engine/src/main.c +++ b/red_scarf_engine/src/main.c @@ -15,5 +15,5 @@ int main(int argc, char** argv) rse_task_join(&graphics_task); rse_task_exit(); - + return 0; } diff --git a/tests/src/rse_graphics_tests.c b/tests/src/rse_graphics_tests.c index 399b2b5f..ad06b0d7 100644 --- a/tests/src/rse_graphics_tests.c +++ b/tests/src/rse_graphics_tests.c @@ -1,10 +1,6 @@ #include "criterion/criterion.h" #include "graphics/src/rse_math.h" - -#include -#include - /*-----------------RSE MATH TEST------------------------*/ TestSuite(rse_math); @@ -177,10 +173,11 @@ Test(rse_math, perspective) } /*-----------------RSE TEXTURES TEST------------------------*/ + #include "graphics/src/rse_texture.h" TestSuite(rse_textures); Test(rse_textures, load_png_image) { rse_load_texture("../../miotacz_piorunów.png"); -} \ No newline at end of file +} diff --git a/utilities/rse_commons.h b/utilities/rse_commons.h index aeabae13..80d9b01d 100644 --- a/utilities/rse_commons.h +++ b/utilities/rse_commons.h @@ -12,6 +12,7 @@ #ifndef RSE_COMMONS_H #define RSE_COMMONS_H +#include "utilities/locale_common.h" #include /** @@ -31,4 +32,4 @@ if (ptr == NULL) { \ */ typedef uint32_t rse_err_t; -#endif /* RSE_COMMONS_H */ \ No newline at end of file +#endif /* RSE_COMMONS_H */