From 68d2dfcae6cfc898ab96d85edb4f7281a0d506ba Mon Sep 17 00:00:00 2001 From: SirLynix Date: Mon, 4 Apr 2022 19:22:18 +0200 Subject: [PATCH] Move FieldOffsets class to Shader module and remove Utility dependency --- examples/Std140Debug/main.cpp | 2 +- include/Nazara/Core/Enums.hpp | 14 ++++ include/Nazara/OpenGLRenderer/Utils.hpp | 1 + .../Nazara/Renderer/RenderPipelineLayout.hpp | 2 +- include/Nazara/Shader.hpp | 2 + include/Nazara/Shader/Ast/ExpressionType.hpp | 3 +- include/Nazara/Shader/Enums.hpp | 70 +++++++++++++++++++ .../{Utility => Shader}/FieldOffsets.hpp | 18 ++--- .../{Utility => Shader}/FieldOffsets.inl | 8 +-- include/Nazara/Utility.hpp | 1 - include/Nazara/Utility/Enums.hpp | 68 ------------------ include/Nazara/VulkanRenderer/Utils.hpp | 1 + src/Nazara/Graphics/BasicMaterial.cpp | 2 +- src/Nazara/Graphics/DepthMaterial.cpp | 2 +- src/Nazara/Graphics/PhongLightingMaterial.cpp | 2 +- .../Graphics/PredefinedShaderStructs.cpp | 2 +- .../{Utility => Shader}/FieldOffsets.cpp | 6 +- src/Nazara/Shader/GlslWriter.cpp | 1 + src/Nazara/Shader/LangWriter.cpp | 1 + src/Nazara/Shader/SpirvConstantCache.cpp | 2 +- xmake.lua | 2 +- 21 files changed, 117 insertions(+), 93 deletions(-) create mode 100644 include/Nazara/Shader/Enums.hpp rename include/Nazara/{Utility => Shader}/FieldOffsets.hpp (79%) rename include/Nazara/{Utility => Shader}/FieldOffsets.inl (95%) rename src/Nazara/{Utility => Shader}/FieldOffsets.cpp (96%) diff --git a/examples/Std140Debug/main.cpp b/examples/Std140Debug/main.cpp index 514c8ddaf..0fb4d7c5b 100644 --- a/examples/Std140Debug/main.cpp +++ b/examples/Std140Debug/main.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include #include diff --git a/include/Nazara/Core/Enums.hpp b/include/Nazara/Core/Enums.hpp index f01829de9..440a100f5 100644 --- a/include/Nazara/Core/Enums.hpp +++ b/include/Nazara/Core/Enums.hpp @@ -70,6 +70,20 @@ namespace Nz constexpr std::size_t ErrorTypeCount = static_cast(ErrorType::Max) + 1; + enum class ImageType + { + E1D, + E1D_Array, + E2D, + E2D_Array, + E3D, + Cubemap, + + Max = Cubemap + }; + + constexpr std::size_t ImageTypeCount = static_cast(ImageType::Max) + 1; + enum class HashType { CRC32, diff --git a/include/Nazara/OpenGLRenderer/Utils.hpp b/include/Nazara/OpenGLRenderer/Utils.hpp index a73bed0e5..591a9fa34 100644 --- a/include/Nazara/OpenGLRenderer/Utils.hpp +++ b/include/Nazara/OpenGLRenderer/Utils.hpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/include/Nazara/Renderer/RenderPipelineLayout.hpp b/include/Nazara/Renderer/RenderPipelineLayout.hpp index 93a436736..23b7071aa 100644 --- a/include/Nazara/Renderer/RenderPipelineLayout.hpp +++ b/include/Nazara/Renderer/RenderPipelineLayout.hpp @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/include/Nazara/Shader.hpp b/include/Nazara/Shader.hpp index 16ae4e3b9..fd6294611 100644 --- a/include/Nazara/Shader.hpp +++ b/include/Nazara/Shader.hpp @@ -30,6 +30,8 @@ #define NAZARA_GLOBAL_SHADER_HPP #include +#include +#include #include #include #include diff --git a/include/Nazara/Shader/Ast/ExpressionType.hpp b/include/Nazara/Shader/Ast/ExpressionType.hpp index d8ea3e59c..7085c8506 100644 --- a/include/Nazara/Shader/Ast/ExpressionType.hpp +++ b/include/Nazara/Shader/Ast/ExpressionType.hpp @@ -8,10 +8,11 @@ #define NAZARA_SHADER_AST_EXPRESSIONTYPE_HPP #include +#include +#include #include #include #include -#include #include #include #include diff --git a/include/Nazara/Shader/Enums.hpp b/include/Nazara/Shader/Enums.hpp new file mode 100644 index 000000000..b08565eb8 --- /dev/null +++ b/include/Nazara/Shader/Enums.hpp @@ -0,0 +1,70 @@ +// Copyright (C) 2022 Jérôme "Lynix" Leclercq (lynix680@gmail.com) +// This file is part of the "Nazara Engine - Shader module" +// For conditions of distribution and use, see copyright notice in Config.hpp + +#pragma once + +#ifndef NAZARA_SHADER_ENUMS_HPP +#define NAZARA_SHADER_ENUMS_HPP + +#include + +namespace Nz +{ + enum class ShaderStageType + { + Fragment, + Vertex, + + Max = Vertex + }; + + constexpr std::size_t ShaderStageTypeCount = static_cast(ShaderStageType::Max) + 1; + + template<> + struct EnumAsFlags + { + static constexpr ShaderStageType max = ShaderStageType::Max; + }; + + using ShaderStageTypeFlags = Flags; + + constexpr ShaderStageTypeFlags ShaderStageType_All = ShaderStageType::Fragment | ShaderStageType::Vertex; + + enum class StructFieldType + { + Bool1, + Bool2, + Bool3, + Bool4, + Float1, + Float2, + Float3, + Float4, + Double1, + Double2, + Double3, + Double4, + Int1, + Int2, + Int3, + Int4, + UInt1, + UInt2, + UInt3, + UInt4, + + Max = UInt4 + }; + + enum class StructLayout + { + Packed, + Std140, + + Max = Std140 + }; + +} + +#endif // NAZARA_SHADER_ENUMS_HPP diff --git a/include/Nazara/Utility/FieldOffsets.hpp b/include/Nazara/Shader/FieldOffsets.hpp similarity index 79% rename from include/Nazara/Utility/FieldOffsets.hpp rename to include/Nazara/Shader/FieldOffsets.hpp index e61ac974a..7008ebf23 100644 --- a/include/Nazara/Utility/FieldOffsets.hpp +++ b/include/Nazara/Shader/FieldOffsets.hpp @@ -1,18 +1,20 @@ // Copyright (C) 2022 Jérôme "Lynix" Leclercq (lynix680@gmail.com) -// This file is part of the "Nazara Engine - Utility module" +// This file is part of the "Nazara Engine - Shader module" // For conditions of distribution and use, see copyright notice in Config.hpp #pragma once -#ifndef NAZARA_UTILITY_FIELDOFFSETS_HPP -#define NAZARA_UTILITY_FIELDOFFSETS_HPP +#ifndef NAZARA_SHADER_FIELDOFFSETS_HPP +#define NAZARA_SHADER_FIELDOFFSETS_HPP -#include -#include +#include +#include +#include +#include namespace Nz { - class NAZARA_UTILITY_API FieldOffsets + class NAZARA_SHADER_API FieldOffsets { public: inline FieldOffsets(StructLayout layout); @@ -47,6 +49,6 @@ namespace Nz }; } -#include +#include -#endif // NAZARA_UTILITY_FIELDOFFSETS_HPP +#endif // NAZARA_SHADER_FIELDOFFSETS_HPP diff --git a/include/Nazara/Utility/FieldOffsets.inl b/include/Nazara/Shader/FieldOffsets.inl similarity index 95% rename from include/Nazara/Utility/FieldOffsets.inl rename to include/Nazara/Shader/FieldOffsets.inl index b4dec65a5..248b289fa 100644 --- a/include/Nazara/Utility/FieldOffsets.inl +++ b/include/Nazara/Shader/FieldOffsets.inl @@ -1,12 +1,12 @@ // Copyright (C) 2022 Jérôme "Lynix" Leclercq (lynix680@gmail.com) -// This file is part of the "Nazara Engine - Utility module" +// This file is part of the "Nazara Engine - Shader module" // For conditions of distribution and use, see copyright notice in Config.hpp -#include +#include #include #include #include -#include +#include namespace Nz { @@ -171,4 +171,4 @@ namespace Nz } } -#include +#include diff --git a/include/Nazara/Utility.hpp b/include/Nazara/Utility.hpp index 56f76f22b..486411760 100644 --- a/include/Nazara/Utility.hpp +++ b/include/Nazara/Utility.hpp @@ -39,7 +39,6 @@ #include #include #include -#include #include #include #include diff --git a/include/Nazara/Utility/Enums.hpp b/include/Nazara/Utility/Enums.hpp index fbfffd4c4..6610a323a 100644 --- a/include/Nazara/Utility/Enums.hpp +++ b/include/Nazara/Utility/Enums.hpp @@ -166,20 +166,6 @@ namespace Nz Max = CounterClockwise }; - enum class ImageType - { - E1D, - E1D_Array, - E2D, - E2D_Array, - E3D, - Cubemap, - - Max = Cubemap - }; - - constexpr std::size_t ImageTypeCount = static_cast(ImageType::Max) + 1; - enum class IndexType { U8, @@ -351,60 +337,6 @@ namespace Nz Max = Repeat }; - enum class ShaderStageType - { - Fragment, - Vertex, - - Max = Vertex - }; - - constexpr std::size_t ShaderStageTypeCount = static_cast(ShaderStageType::Max) + 1; - - template<> - struct EnumAsFlags - { - static constexpr ShaderStageType max = ShaderStageType::Max; - }; - - using ShaderStageTypeFlags = Flags; - - constexpr ShaderStageTypeFlags ShaderStageType_All = ShaderStageType::Fragment | ShaderStageType::Vertex; - - enum class StructFieldType - { - Bool1, - Bool2, - Bool3, - Bool4, - Float1, - Float2, - Float3, - Float4, - Double1, - Double2, - Double3, - Double4, - Int1, - Int2, - Int3, - Int4, - UInt1, - UInt2, - UInt3, - UInt4, - - Max = UInt4 - }; - - enum class StructLayout - { - Packed, - Std140, - - Max = Std140 - }; - enum class StencilOperation { Decrement, diff --git a/include/Nazara/VulkanRenderer/Utils.hpp b/include/Nazara/VulkanRenderer/Utils.hpp index 280b10c98..70633f67b 100644 --- a/include/Nazara/VulkanRenderer/Utils.hpp +++ b/include/Nazara/VulkanRenderer/Utils.hpp @@ -9,6 +9,7 @@ #include #include +#include #include #include #include diff --git a/src/Nazara/Graphics/BasicMaterial.cpp b/src/Nazara/Graphics/BasicMaterial.cpp index a23685d31..3972b1ee2 100644 --- a/src/Nazara/Graphics/BasicMaterial.cpp +++ b/src/Nazara/Graphics/BasicMaterial.cpp @@ -8,9 +8,9 @@ #include #include #include +#include #include #include -#include #include #include #include diff --git a/src/Nazara/Graphics/DepthMaterial.cpp b/src/Nazara/Graphics/DepthMaterial.cpp index ddb5dfc21..5e6db970f 100644 --- a/src/Nazara/Graphics/DepthMaterial.cpp +++ b/src/Nazara/Graphics/DepthMaterial.cpp @@ -3,8 +3,8 @@ // For conditions of distribution and use, see copyright notice in Config.hpp #include +#include #include -#include #include namespace Nz diff --git a/src/Nazara/Graphics/PhongLightingMaterial.cpp b/src/Nazara/Graphics/PhongLightingMaterial.cpp index 6742257dd..1597f8136 100644 --- a/src/Nazara/Graphics/PhongLightingMaterial.cpp +++ b/src/Nazara/Graphics/PhongLightingMaterial.cpp @@ -7,9 +7,9 @@ #include #include #include +#include #include #include -#include #include #include #include diff --git a/src/Nazara/Graphics/PredefinedShaderStructs.cpp b/src/Nazara/Graphics/PredefinedShaderStructs.cpp index c071001bb..035d4f153 100644 --- a/src/Nazara/Graphics/PredefinedShaderStructs.cpp +++ b/src/Nazara/Graphics/PredefinedShaderStructs.cpp @@ -3,7 +3,7 @@ // For conditions of distribution and use, see copyright notice in Config.hpp #include -#include +#include #include namespace Nz diff --git a/src/Nazara/Utility/FieldOffsets.cpp b/src/Nazara/Shader/FieldOffsets.cpp similarity index 96% rename from src/Nazara/Utility/FieldOffsets.cpp rename to src/Nazara/Shader/FieldOffsets.cpp index 1133b62f8..b6c062400 100644 --- a/src/Nazara/Utility/FieldOffsets.cpp +++ b/src/Nazara/Shader/FieldOffsets.cpp @@ -1,11 +1,11 @@ // Copyright (C) 2022 Jérôme "Lynix" Leclercq (lynix680@gmail.com) -// This file is part of the "Nazara Engine - Utility module" +// This file is part of the "Nazara Engine - Shader module" // For conditions of distribution and use, see copyright notice in Config.hpp -#include +#include #include #include -#include +#include namespace Nz { diff --git a/src/Nazara/Shader/GlslWriter.cpp b/src/Nazara/Shader/GlslWriter.cpp index db216f624..41687b718 100644 --- a/src/Nazara/Shader/GlslWriter.cpp +++ b/src/Nazara/Shader/GlslWriter.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/src/Nazara/Shader/LangWriter.cpp b/src/Nazara/Shader/LangWriter.cpp index df626504c..f5d042da9 100644 --- a/src/Nazara/Shader/LangWriter.cpp +++ b/src/Nazara/Shader/LangWriter.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/src/Nazara/Shader/SpirvConstantCache.cpp b/src/Nazara/Shader/SpirvConstantCache.cpp index 1e6b38faf..e0c50155f 100644 --- a/src/Nazara/Shader/SpirvConstantCache.cpp +++ b/src/Nazara/Shader/SpirvConstantCache.cpp @@ -3,9 +3,9 @@ // For conditions of distribution and use, see copyright notice in Config.hpp #include +#include #include #include -#include #include #include #include diff --git a/xmake.lua b/xmake.lua index 22d2c1c5d..eee3fc7eb 100644 --- a/xmake.lua +++ b/xmake.lua @@ -80,8 +80,8 @@ local modules = { Deps = {"NazaraPlatform", "NazaraShader"} }, Shader = { - Deps = {"NazaraUtility"}, Packages = {"efsw", "fmt"}, + Deps = {"NazaraCore"}, Custom = function() -- Set precise floating-points models to ensure shader optimization leads to correct results set_fpmodels("precise")