diff --git a/cmake_modules/gcc.cmake b/cmake_modules/gcc.cmake index 3894dcf..fd823b8 100644 --- a/cmake_modules/gcc.cmake +++ b/cmake_modules/gcc.cmake @@ -106,12 +106,11 @@ set(FGL_CONFIG "-std=c++23 -fmax-errors=3 -fconcepts-diagnostics-depth=8 -march=native -flto=auto -ftree-vectorize") - #if (DEFINED USE_WERROR) - # set(FGL_CONFIG "${FGL_CONFIG} -Werror") - #endif () + if (DEFINED USE_WERROR) + set(FGL_CONFIG "${FGL_CONFIG} -Werror") + endif () # Safe for debug - # TODO: Figure out LTO with Alaestor's retarded compiler set(FGL_SHARED_OPTIMIZATION_FLAGS "-fno-rtti") set(FGL_GENERAL_OPTIMIZATION_FLAGS "-fdevirtualize-at-ltrans -fdevirtualize-speculatively -funroll-loops -floop-nest-optimize -floop-parallelize-all -fsplit-paths -fstrict-aliasing -ftree-vectorize") diff --git a/src/engine/GameObject.hpp b/src/engine/GameObject.hpp index 3bf4e9c..6253067 100644 --- a/src/engine/GameObject.hpp +++ b/src/engine/GameObject.hpp @@ -6,6 +6,7 @@ #include #include +#include #include "engine/primitives/TransformComponent.hpp" @@ -69,7 +70,7 @@ namespace fgl::engine class ModelComponent final : public GameObjectComponent< 1 > { - std::shared_ptr m_model; + std::shared_ptr< Model > m_model; public: diff --git a/src/engine/assets/AssetManager.hpp b/src/engine/assets/AssetManager.hpp index 30ec286..f3074a1 100644 --- a/src/engine/assets/AssetManager.hpp +++ b/src/engine/assets/AssetManager.hpp @@ -4,6 +4,7 @@ #pragma once +#include #include #include diff --git a/src/engine/filesystem/FileBrowser.cpp b/src/engine/filesystem/FileBrowser.cpp index c262c4b..659f26b 100644 --- a/src/engine/filesystem/FileBrowser.cpp +++ b/src/engine/filesystem/FileBrowser.cpp @@ -70,8 +70,10 @@ namespace fgl::engine::filesystem auto size { ImGui::GetWindowSize() }; size.x -= 12; // Remove scrollbar pixels - const float extra { std::fmod( size.x, desired_size + ( padding * 2 ) ) }; - const auto cols { ( size.x - extra ) / static_cast< float >( desired_size + ( padding * 2 ) ) }; + const float extra { std::fmod( size.x, static_cast< float >( desired_size + ( padding * 2 ) ) ) }; + const auto cols { + static_cast< int >( ( size.x - extra ) / static_cast< float >( desired_size + ( padding * 2 ) ) ) + }; if ( cols == 0 ) { diff --git a/src/engine/filesystem/scanner/FileScanner.hpp b/src/engine/filesystem/scanner/FileScanner.hpp index b4ced6e..002b634 100644 --- a/src/engine/filesystem/scanner/FileScanner.hpp +++ b/src/engine/filesystem/scanner/FileScanner.hpp @@ -4,6 +4,7 @@ #pragma once +#include #include #include #include diff --git a/src/engine/gui/core.cpp b/src/engine/gui/core.cpp index 6699d0d..3fabb12 100644 --- a/src/engine/gui/core.cpp +++ b/src/engine/gui/core.cpp @@ -15,8 +15,6 @@ #include #pragma GCC diagnostic pop -#include - #include "engine/descriptors/DescriptorPool.hpp" #include "engine/filesystem/FileBrowser.hpp" #include "engine/model/Model.hpp" @@ -181,6 +179,8 @@ namespace fgl::engine::gui ImGui::End(); } + /* + ImGui DockBuilder is still very much not ready for use. void prepareDock() { // Docks seem utterly broken. @@ -219,6 +219,7 @@ namespace fgl::engine::gui ImGui::DockBuilderFinish( primary_id ); } + */ void drawMainGUI( FrameInfo& info ) { diff --git a/src/engine/image/ImageView.cpp b/src/engine/image/ImageView.cpp index e3d8b55..472ebbe 100644 --- a/src/engine/image/ImageView.cpp +++ b/src/engine/image/ImageView.cpp @@ -27,8 +27,8 @@ namespace fgl::engine ImageView::ImageView( std::shared_ptr< ImageHandle >& img ) : m_resource( img ), m_descriptor_info(), - m_sampler(), - m_image_view( createImageView( img ) ) + m_image_view( createImageView( img ) ), + m_sampler() { m_descriptor_info.imageLayout = img->m_final_layout; m_descriptor_info.imageView = m_image_view; diff --git a/src/engine/math/noise/perlin/generator.cpp b/src/engine/math/noise/perlin/generator.cpp index 8880d15..7c4a4b2 100644 --- a/src/engine/math/noise/perlin/generator.cpp +++ b/src/engine/math/noise/perlin/generator.cpp @@ -5,6 +5,7 @@ #include "generator.hpp" #include +#include #include #include diff --git a/src/engine/pipeline/Shader.cpp b/src/engine/pipeline/Shader.cpp index 80df598..edf566a 100644 --- a/src/engine/pipeline/Shader.cpp +++ b/src/engine/pipeline/Shader.cpp @@ -43,8 +43,8 @@ namespace fgl::engine ShaderHandle::ShaderHandle( const std::filesystem::path path, const vk::PipelineShaderStageCreateInfo info ) : shader_data( loadData( path ) ), module_create_info( createModuleInfo() ), - shader_module( Device::getInstance()->createShaderModule( module_create_info ) ), - stage_info( info ) + stage_info( info ), + shader_module( Device::getInstance()->createShaderModule( module_create_info ) ) { stage_info.module = shader_module; } diff --git a/src/engine/rendering/Instance.cpp b/src/engine/rendering/Instance.cpp index f9cc8ed..a6f52f6 100644 --- a/src/engine/rendering/Instance.cpp +++ b/src/engine/rendering/Instance.cpp @@ -7,6 +7,7 @@ #include #include +#include #include "engine/logging/logging.hpp" diff --git a/src/engine/rendering/SwapChain.cpp b/src/engine/rendering/SwapChain.cpp index efa9321..bf93acc 100644 --- a/src/engine/rendering/SwapChain.cpp +++ b/src/engine/rendering/SwapChain.cpp @@ -218,7 +218,7 @@ namespace fgl::engine g_buffer_position.setClear( vk::ClearColorValue( std::array< float, 4 > { { 0.0f, 0.0f, 0.0f, 0.0f } } ) ); g_buffer_normal.setClear( vk::ClearColorValue( std::array< float, 4 > { { 0.0f, 0.0f, 0.0f, 0.0f } } ) ); g_buffer_albedo.setClear( vk::ClearColorValue( std::array< float, 4 > { { 0.0f, 0.0f, 0.0f, 0.0f } } ) ); - g_buffer_composite.setClear( vk::ClearColorValue( std::array< float, 4 > { 0.0f, 0.0f, 0.0f, 0.0f } ) ); + g_buffer_composite.setClear( vk::ClearColorValue( std::array< float, 4 > { { 0.0f, 0.0f, 0.0f, 0.0f } } ) ); g_buffer_position_img = std::make_unique< Texture >( g_buffer_position.m_attachment_resources.m_images[ 0 ] ->setName( "GBufferPosition" ) ); diff --git a/src/engine/texture/Texture.cpp b/src/engine/texture/Texture.cpp index 76709ce..a1ed850 100644 --- a/src/engine/texture/Texture.cpp +++ b/src/engine/texture/Texture.cpp @@ -24,9 +24,10 @@ namespace fgl::engine { - std::uint64_t getNextID() + //TODO: We should be trying to re-use IDs that are released from textures so we can prevent this number from getting extremely large. + std::uint32_t getNextID() { - static std::uint64_t id { 0 }; + static std::uint32_t id { 0 }; return id++; } @@ -106,8 +107,8 @@ namespace fgl::engine {} Texture::Texture( const std::vector< std::byte >& data, const vk::Extent2D extent, const vk::Format format ) : - m_extent( extent ), - m_texture_id( getNextID() ) + m_texture_id( getNextID() ), + m_extent( extent ) { ZoneScoped; @@ -272,7 +273,11 @@ namespace fgl::engine return m_imgui_set; } - Texture::Texture( Image& image, Sampler sampler ) : m_image_view( image.getView() ), m_texture_id( getNextID() ) + Texture::Texture( Image& image, Sampler sampler ) : + m_texture_id( getNextID() ), + m_image_view( image.getView() ), + //TODO: Figure out how to get extents from images. + m_extent() { m_image_view->getSampler() = std::move( sampler ); setReady(); diff --git a/src/engine/texture/Texture.hpp b/src/engine/texture/Texture.hpp index f70b3de..f263989 100644 --- a/src/engine/texture/Texture.hpp +++ b/src/engine/texture/Texture.hpp @@ -33,13 +33,13 @@ namespace fgl::engine friend class AssetStore; //TODO: Implement reusing texture ids - TextureID m_texture_id { std::numeric_limits< TextureID >::infinity() }; + TextureID m_texture_id; std::shared_ptr< ImageView > m_image_view {}; std::unique_ptr< BufferSuballocation > m_staging { nullptr }; - vk::Extent2D m_extent { 0, 0 }; + vk::Extent2D m_extent; vk::DescriptorSet m_imgui_set { VK_NULL_HANDLE };