diff --git a/source/ps/CLogger.h b/source/ps/CLogger.h index a4d979d33a..d758989be7 100644 --- a/source/ps/CLogger.h +++ b/source/ps/CLogger.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,6 +18,8 @@ #ifndef INCLUDED_CLOGGER #define INCLUDED_CLOGGER +#include "lib/code_annotation.h" + #include #include #include diff --git a/source/ps/CStrIntern.h b/source/ps/CStrIntern.h index 6502ed4e7c..111ffdb041 100644 --- a/source/ps/CStrIntern.h +++ b/source/ps/CStrIntern.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2021 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -20,6 +20,8 @@ #include "lib/types.h" +#include + class CStrInternInternals; /** diff --git a/source/ps/VideoMode.h b/source/ps/VideoMode.h index 3faae58332..80bb54c253 100644 --- a/source/ps/VideoMode.h +++ b/source/ps/VideoMode.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,6 +18,7 @@ #ifndef INCLUDED_VIDEOMODE #define INCLUDED_VIDEOMODE +#include "graphics/Camera.h" #include "ps/CStrForward.h" #include "renderer/backend/Backend.h" diff --git a/source/renderer/DebugRenderer.cpp b/source/renderer/DebugRenderer.cpp index 038fa8d222..13704353e4 100644 --- a/source/renderer/DebugRenderer.cpp +++ b/source/renderer/DebugRenderer.cpp @@ -41,9 +41,6 @@ #include #include -#include -#include -#include void CDebugRenderer::Initialize() { diff --git a/source/renderer/DecalRData.cpp b/source/renderer/DecalRData.cpp index c522374686..06d9c01eb4 100644 --- a/source/renderer/DecalRData.cpp +++ b/source/renderer/DecalRData.cpp @@ -32,6 +32,7 @@ #include "lib/allocators/DynamicArena.h" #include "lib/allocators/STLAllocators.h" #include "lib/debug.h" +#include "lib/posix/posix_types.h" #include "lib/types.h" #include "maths/Matrix3D.h" #include "ps/CLogger.h" @@ -55,7 +56,6 @@ #include #include #include -#include #include // TODO: Currently each decal is a separate CDecalRData. We might want to use diff --git a/source/renderer/InstancingModelRenderer.cpp b/source/renderer/InstancingModelRenderer.cpp index c64b737984..9b2d534f94 100644 --- a/source/renderer/InstancingModelRenderer.cpp +++ b/source/renderer/InstancingModelRenderer.cpp @@ -40,7 +40,6 @@ #include #include #include -#include #include struct IModelDef : public CModelDefRPrivate diff --git a/source/renderer/MikktspaceWrap.cpp b/source/renderer/MikktspaceWrap.cpp index 7cd96a772c..2dc32d9d36 100644 --- a/source/renderer/MikktspaceWrap.cpp +++ b/source/renderer/MikktspaceWrap.cpp @@ -25,7 +25,6 @@ #include "maths/Vector3D.h" #include -#include MikkTSpace::MikkTSpace(const CModelDefPtr& m, std::vector& v, bool gpuSkinning) : m_Model(m), m_NewVertices(v), m_GpuSkinning(gpuSkinning) diff --git a/source/renderer/ModelRenderer.cpp b/source/renderer/ModelRenderer.cpp index 09034af28a..38821c1ec5 100644 --- a/source/renderer/ModelRenderer.cpp +++ b/source/renderer/ModelRenderer.cpp @@ -60,7 +60,6 @@ #include #include #include -#include #include #include #include diff --git a/source/renderer/OverlayRenderer.cpp b/source/renderer/OverlayRenderer.cpp index 5898bb7598..b4dbaef463 100644 --- a/source/renderer/OverlayRenderer.cpp +++ b/source/renderer/OverlayRenderer.cpp @@ -53,7 +53,6 @@ #include "renderer/backend/IDeviceCommandContext.h" #include "renderer/backend/IShaderProgram.h" #include "renderer/backend/PipelineState.h" -#include "simulation2/Simulation2.h" #include #include @@ -61,7 +60,6 @@ #include #include #include -#include #include #include #include diff --git a/source/renderer/ParticleRenderer.cpp b/source/renderer/ParticleRenderer.cpp index b843bc04e1..c4d670f2ce 100644 --- a/source/renderer/ParticleRenderer.cpp +++ b/source/renderer/ParticleRenderer.cpp @@ -42,7 +42,6 @@ #include #include -#include #include #include diff --git a/source/renderer/PatchRData.cpp b/source/renderer/PatchRData.cpp index e39ec87e61..f558939df7 100644 --- a/source/renderer/PatchRData.cpp +++ b/source/renderer/PatchRData.cpp @@ -46,7 +46,6 @@ #include "ps/CStrInternStatic.h" #include "ps/Game.h" #include "ps/Profile.h" -#include "ps/VideoMode.h" #include "ps/containers/Span.h" #include "renderer/AlphaMapCalculator.h" #include "renderer/BlendShapes.h" diff --git a/source/renderer/PatchRData.h b/source/renderer/PatchRData.h index 55939baca8..541129ac41 100644 --- a/source/renderer/PatchRData.h +++ b/source/renderer/PatchRData.h @@ -21,6 +21,7 @@ #include "graphics/Patch.h" #include "graphics/RenderableObject.h" #include "lib/code_annotation.h" +#include "lib/posix/posix_types.h" #include "lib/types.h" #include "maths/BoundingBoxAligned.h" #include "maths/Vector2D.h" @@ -28,7 +29,6 @@ #include "renderer/VertexBufferManager.h" #include -#include #include class CShaderDefines; diff --git a/source/renderer/Renderer.cpp b/source/renderer/Renderer.cpp index 6e8e6e9c73..36412f9fcd 100644 --- a/source/renderer/Renderer.cpp +++ b/source/renderer/Renderer.cpp @@ -25,7 +25,6 @@ #include "graphics/Color.h" #include "graphics/FontManager.h" #include "graphics/GameView.h" -#include "graphics/HeightMipmap.h" #include "graphics/ModelDef.h" #include "graphics/ShaderManager.h" #include "graphics/TerrainTextureManager.h" @@ -37,10 +36,10 @@ #include "lib/code_annotation.h" #include "lib/debug.h" #include "lib/file/vfs/vfs.h" +#include "lib/file/vfs/vfs_path.h" #include "lib/file/vfs/vfs_util.h" #include "lib/hash.h" #include "lib/os_path.h" -#include "lib/path.h" #include "lib/secure_crt.h" #include "lib/status.h" #include "lib/tex/tex.h" @@ -78,7 +77,6 @@ #include "tools/atlas/GameInterface/View.h" #include -#include #include #include #include diff --git a/source/renderer/Renderer.h b/source/renderer/Renderer.h index 0991926c49..627212bd38 100644 --- a/source/renderer/Renderer.h +++ b/source/renderer/Renderer.h @@ -18,7 +18,6 @@ #ifndef INCLUDED_RENDERER #define INCLUDED_RENDERER -#include "graphics/Camera.h" #include "ps/Singleton.h" #include "renderer/RenderingOptions.h" @@ -39,8 +38,6 @@ namespace Renderer::Backend { class IDeviceCommandContext; } namespace Renderer::Backend { class IVertexInputLayout; } namespace Renderer::Backend { struct SVertexAttributeFormat; } -#define g_Renderer CRenderer::GetSingleton() - /** * Higher level interface on top of the whole frame rendering. It does know * what should be rendered and via which renderer but shouldn't know how to @@ -185,4 +182,6 @@ protected: ScreenShotType m_ScreenShotType = ScreenShotType::NONE; }; +#define g_Renderer CRenderer::GetSingleton() + #endif // INCLUDED_RENDERER diff --git a/source/renderer/SceneRenderer.cpp b/source/renderer/SceneRenderer.cpp index e91859c08d..64f7ce2088 100644 --- a/source/renderer/SceneRenderer.cpp +++ b/source/renderer/SceneRenderer.cpp @@ -39,6 +39,7 @@ #include "maths/Frustum.h" #include "maths/MathUtil.h" #include "maths/Matrix3D.h" +#include "maths/Plane.h" #include "maths/Vector3D.h" #include "maths/Vector4D.h" #include "ps/CStrIntern.h" diff --git a/source/renderer/SilhouetteRenderer.cpp b/source/renderer/SilhouetteRenderer.cpp index bd882f812a..9e6394f3a8 100644 --- a/source/renderer/SilhouetteRenderer.cpp +++ b/source/renderer/SilhouetteRenderer.cpp @@ -29,6 +29,7 @@ #include "graphics/ShaderManager.h" #include "graphics/ShaderTechnique.h" #include "lib/debug.h" +#include "lib/posix/posix_types.h" #include "lib/types.h" #include "maths/MathUtil.h" #include "maths/Matrix3D.h" @@ -52,8 +53,6 @@ #include #include #include -#include -#include extern int g_xres, g_yres; diff --git a/source/renderer/SkyManager.cpp b/source/renderer/SkyManager.cpp index 1151ec0136..124a7a02ff 100644 --- a/source/renderer/SkyManager.cpp +++ b/source/renderer/SkyManager.cpp @@ -20,7 +20,6 @@ #include "SkyManager.h" #include "graphics/Camera.h" -#include "graphics/HeightMipmap.h" #include "graphics/LightEnv.h" #include "graphics/ShaderManager.h" #include "graphics/ShaderTechnique.h" @@ -30,6 +29,7 @@ #include "lib/code_generation.h" #include "lib/file/file_system.h" #include "lib/file/vfs/vfs.h" +#include "lib/file/vfs/vfs_path.h" #include "lib/path.h" #include "lib/status.h" #include "lib/tex/tex.h" diff --git a/source/renderer/TerrainOverlay.h b/source/renderer/TerrainOverlay.h index 3e78a35230..e32ece1255 100644 --- a/source/renderer/TerrainOverlay.h +++ b/source/renderer/TerrainOverlay.h @@ -25,11 +25,11 @@ #include "graphics/ShaderTechniquePtr.h" #include "lib/code_annotation.h" +#include "lib/posix/posix_types.h" #include "lib/types.h" #include #include -#include class CSimContext; class CTerrain; diff --git a/source/renderer/TexturedLineRData.cpp b/source/renderer/TexturedLineRData.cpp index 9cba7dc0a5..34352d67a2 100644 --- a/source/renderer/TexturedLineRData.cpp +++ b/source/renderer/TexturedLineRData.cpp @@ -45,7 +45,6 @@ #include #include #include -#include /* Note: this implementation uses CVertexBufferManager directly rather than access it through the nicer VertexArray interface, * because it allows you to work with variable amounts of vertices and indices more easily. New code should prefer diff --git a/source/renderer/VertexArray.h b/source/renderer/VertexArray.h index 1f0c8ab472..dc1d2c8faf 100644 --- a/source/renderer/VertexArray.h +++ b/source/renderer/VertexArray.h @@ -19,6 +19,7 @@ #define INCLUDED_VERTEXARRAY #include "lib/debug.h" +#include "lib/posix/posix_types.h" #include "lib/types.h" #include "renderer/VertexBuffer.h" #include "renderer/VertexBufferManager.h" @@ -27,7 +28,6 @@ #include #include -#include #include namespace Renderer::Backend { class IDeviceCommandContext; } diff --git a/source/renderer/WaterManager.cpp b/source/renderer/WaterManager.cpp index 0405240128..0bbfc49118 100644 --- a/source/renderer/WaterManager.cpp +++ b/source/renderer/WaterManager.cpp @@ -28,6 +28,7 @@ #include "lib/bits.h" #include "lib/code_annotation.h" #include "lib/debug.h" +#include "lib/path.h" #include "lib/secure_crt.h" #include "maths/BoundingBoxAligned.h" #include "maths/Frustum.h" diff --git a/source/renderer/WaterManager.h b/source/renderer/WaterManager.h index 05f82ce11d..6b2b70eb34 100644 --- a/source/renderer/WaterManager.h +++ b/source/renderer/WaterManager.h @@ -24,6 +24,7 @@ #include "graphics/Color.h" #include "graphics/Texture.h" +#include "lib/posix/posix_types.h" #include "lib/types.h" #include "maths/Matrix3D.h" #include "renderer/VertexBufferManager.h" @@ -31,7 +32,6 @@ #include #include #include -#include #include class CFrustum; diff --git a/source/renderer/backend/dummy/Device.h b/source/renderer/backend/dummy/Device.h index 640189a8ef..3278a1d10f 100644 --- a/source/renderer/backend/dummy/Device.h +++ b/source/renderer/backend/dummy/Device.h @@ -18,6 +18,7 @@ #ifndef INCLUDED_RENDERER_BACKEND_DUMMY_DEVICE #define INCLUDED_RENDERER_BACKEND_DUMMY_DEVICE +#include "ps/CStr.h" #include "renderer/backend/Backend.h" #include "renderer/backend/IBuffer.h" #include "renderer/backend/IDevice.h" diff --git a/source/renderer/backend/dummy/DeviceCommandContext.cpp b/source/renderer/backend/dummy/DeviceCommandContext.cpp index 7e49705239..ca03b13d91 100644 --- a/source/renderer/backend/dummy/DeviceCommandContext.cpp +++ b/source/renderer/backend/dummy/DeviceCommandContext.cpp @@ -19,11 +19,8 @@ #include "DeviceCommandContext.h" -#include "renderer/backend/dummy/Buffer.h" +#include "ps/containers/Span.h" #include "renderer/backend/dummy/Device.h" -#include "renderer/backend/dummy/Framebuffer.h" -#include "renderer/backend/dummy/ShaderProgram.h" -#include "renderer/backend/dummy/Texture.h" namespace Renderer { diff --git a/source/renderer/backend/gl/Device.cpp b/source/renderer/backend/gl/Device.cpp index c698d4c20b..a79bcf5698 100644 --- a/source/renderer/backend/gl/Device.cpp +++ b/source/renderer/backend/gl/Device.cpp @@ -19,19 +19,43 @@ #include "Device.h" +#include "lib/alignment.h" +#include "lib/code_generation.h" +#include "lib/config2.h" +#include "lib/debug.h" #include "lib/external_libraries/libsdl.h" #include "lib/hash.h" #include "lib/ogl.h" +#include "lib/secure_crt.h" +#include "lib/sysdep/os.h" #include "ps/CLogger.h" #include "ps/ConfigDB.h" #include "ps/Profile.h" +#include "ps/containers/Span.h" +#include "renderer/backend/Format.h" +#include "renderer/backend/gl/Buffer.h" #include "renderer/backend/gl/DeviceCommandContext.h" +#include "renderer/backend/gl/DeviceForward.h" +#include "renderer/backend/gl/Framebuffer.h" #include "renderer/backend/gl/PipelineState.h" +#include "renderer/backend/gl/ShaderProgram.h" #include "renderer/backend/gl/Texture.h" -#include "scriptinterface/JSON.h" #include "scriptinterface/Object.h" -#include "scriptinterface/ScriptInterface.h" -#include "scriptinterface/ScriptRequest.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #if OS_WIN // We can't include wutil directly because GL headers conflict with Windows @@ -39,18 +63,13 @@ extern void* wutil_GetAppHDC(); #endif -#include -#include -#include - #if !CONFIG2_GLES && (defined(SDL_VIDEO_DRIVER_X11) || defined(SDL_VIDEO_DRIVER_WAYLAND)) #if defined(SDL_VIDEO_DRIVER_X11) +#include #include #endif -#if defined(SDL_VIDEO_DRIVER_WAYLAND) -#include -#endif + #include #endif // !CONFIG2_GLES && (defined(SDL_VIDEO_DRIVER_X11) || defined(SDL_VIDEO_DRIVER_WAYLAND)) diff --git a/source/renderer/backend/gl/Device.h b/source/renderer/backend/gl/Device.h index 796c65235f..cc079d0dab 100644 --- a/source/renderer/backend/gl/Device.h +++ b/source/renderer/backend/gl/Device.h @@ -18,23 +18,27 @@ #ifndef INCLUDED_RENDERER_BACKEND_GL_DEVICE #define INCLUDED_RENDERER_BACKEND_GL_DEVICE +#include "lib/ogl.h" #include "ps/CStr.h" #include "renderer/backend/Backend.h" -#include "renderer/backend/Format.h" -#include "renderer/backend/gl/Buffer.h" -#include "renderer/backend/gl/DeviceForward.h" -#include "renderer/backend/gl/Framebuffer.h" -#include "renderer/backend/gl/ShaderProgram.h" -#include "renderer/backend/gl/Texture.h" +#include "renderer/backend/IBuffer.h" #include "renderer/backend/IDevice.h" -#include "scriptinterface/ScriptForward.h" +#include "renderer/backend/IFramebuffer.h" +#include "renderer/backend/ITexture.h" +#include "renderer/backend/gl/DeviceForward.h" +#include +#include +#include #include #include #include #include #include +namespace Renderer::Backend::GL { class CDeviceCommandContext; } +namespace Renderer::Backend::GL { class CFramebuffer; } + typedef struct SDL_Window SDL_Window; typedef void* SDL_GLContext; @@ -47,8 +51,6 @@ namespace Backend namespace GL { -class CDeviceCommandContext; - class CDevice final : public IDevice { public: diff --git a/source/renderer/backend/gl/DeviceCommandContext.cpp b/source/renderer/backend/gl/DeviceCommandContext.cpp index d55cdaf925..ec6f2fbff5 100644 --- a/source/renderer/backend/gl/DeviceCommandContext.cpp +++ b/source/renderer/backend/gl/DeviceCommandContext.cpp @@ -19,15 +19,17 @@ #include "DeviceCommandContext.h" +#include "lib/config2.h" +#include "lib/debug.h" #include "ps/CLogger.h" #include "ps/containers/Span.h" #include "renderer/backend/Barrier.h" #include "renderer/backend/Format.h" -#include "renderer/backend/IDeviceObject.h" +#include "renderer/backend/IFramebuffer.h" #include "renderer/backend/IShaderProgram.h" +#include "renderer/backend/ITexture.h" #include "renderer/backend/PipelineState.h" #include "renderer/backend/Sampler.h" -#include "renderer/backend/Sampler.h" #include "renderer/backend/gl/Buffer.h" #include "renderer/backend/gl/Device.h" #include "renderer/backend/gl/Framebuffer.h" @@ -39,6 +41,7 @@ #include #include #include +#include namespace Renderer { diff --git a/source/renderer/backend/gl/DeviceCommandContext.h b/source/renderer/backend/gl/DeviceCommandContext.h index 048ba8ec0f..415453c260 100644 --- a/source/renderer/backend/gl/DeviceCommandContext.h +++ b/source/renderer/backend/gl/DeviceCommandContext.h @@ -30,7 +30,6 @@ #include #include #include -#include #include #include diff --git a/source/renderer/backend/gl/ShaderProgram.cpp b/source/renderer/backend/gl/ShaderProgram.cpp index 13486721f2..7e42346f9a 100644 --- a/source/renderer/backend/gl/ShaderProgram.cpp +++ b/source/renderer/backend/gl/ShaderProgram.cpp @@ -19,31 +19,41 @@ #include "ShaderProgram.h" -#include "graphics/Color.h" #include "graphics/PreprocessorWrapper.h" -#include "graphics/ShaderManager.h" -#include "graphics/TextureManager.h" +#include "graphics/ShaderDefines.h" +#include "lib/config2.h" +#include "lib/path.h" +#include "lib/types.h" +#include "lib/utf8.h" #include "ps/CLogger.h" -#include "ps/containers/StaticVector.h" +#include "ps/CStrIntern.h" +#include "ps/Errors.h" #include "ps/Filesystem.h" -#include "ps/Profile.h" +#include "ps/Profiler2.h" +#include "ps/XMB/XMBData.h" +#include "ps/XMB/XMBStorage.h" #include "ps/XML/Xeromyces.h" +#include "ps/containers/StaticVector.h" +#include "renderer/backend/IBuffer.h" +#include "renderer/backend/PipelineState.h" #include "renderer/backend/gl/Buffer.h" #include "renderer/backend/gl/Device.h" #include "renderer/backend/gl/DeviceCommandContext.h" +#include +#include +#include +#include +#include +#include +#include + #define USE_SHADER_XML_VALIDATION 1 #if USE_SHADER_XML_VALIDATION -#include "ps/XML/RelaxNG.h" #include "ps/XML/XMLWriter.h" #endif -#include -#include -#include -#include - namespace Renderer { diff --git a/source/renderer/backend/gl/ShaderProgram.h b/source/renderer/backend/gl/ShaderProgram.h index 38306909fc..26d518977c 100644 --- a/source/renderer/backend/gl/ShaderProgram.h +++ b/source/renderer/backend/gl/ShaderProgram.h @@ -18,22 +18,21 @@ #ifndef INCLUDED_RENDERER_BACKEND_GL_SHADERPROGRAM #define INCLUDED_RENDERER_BACKEND_GL_SHADERPROGRAM +#include "lib/code_annotation.h" +#include "lib/debug.h" #include "lib/ogl.h" -#include "lib/file/vfs/vfs_path.h" -#include "ps/containers/Span.h" #include "ps/CStr.h" +#include "ps/containers/Span.h" #include "renderer/backend/Format.h" -#include "renderer/backend/gl/Texture.h" #include "renderer/backend/IShaderProgram.h" -#include +#include +#include #include -struct CColor; -class CMatrix3D; -class CVector3D; class CShaderDefines; class CStrIntern; +namespace Renderer::Backend::GL { class CDevice; } namespace Renderer { @@ -44,8 +43,6 @@ namespace Backend namespace GL { -class CDevice; - class CVertexInputLayout : public IVertexInputLayout { public: diff --git a/source/renderer/backend/vulkan/Buffer.h b/source/renderer/backend/vulkan/Buffer.h index 3655c1dabc..12dda4fd57 100644 --- a/source/renderer/backend/vulkan/Buffer.h +++ b/source/renderer/backend/vulkan/Buffer.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -22,9 +22,12 @@ #include "renderer/backend/vulkan/DeviceObjectUID.h" #include "renderer/backend/vulkan/VMA.h" +#include #include #include +namespace Renderer::Backend::Vulkan { class CDevice; } + namespace Renderer { @@ -34,8 +37,6 @@ namespace Backend namespace Vulkan { -class CDevice; - class CBuffer final : public IBuffer { public: diff --git a/source/renderer/backend/vulkan/DescriptorManager.cpp b/source/renderer/backend/vulkan/DescriptorManager.cpp index 5a10d9e4d1..4b420a01af 100644 --- a/source/renderer/backend/vulkan/DescriptorManager.cpp +++ b/source/renderer/backend/vulkan/DescriptorManager.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -20,9 +20,15 @@ #include "DescriptorManager.h" #include "lib/hash.h" +#include "ps/CLogger.h" #include "ps/containers/StaticVector.h" +#include "renderer/backend/Format.h" +#include "renderer/backend/IBuffer.h" +#include "renderer/backend/ITexture.h" +#include "renderer/backend/Sampler.h" +#include "renderer/backend/vulkan/Buffer.h" #include "renderer/backend/vulkan/Device.h" -#include "renderer/backend/vulkan/Mapping.h" +#include "renderer/backend/vulkan/DeviceSelection.h" #include "renderer/backend/vulkan/Texture.h" #include "renderer/backend/vulkan/Utilities.h" diff --git a/source/renderer/backend/vulkan/DescriptorManager.h b/source/renderer/backend/vulkan/DescriptorManager.h index e4991139ec..dc1fe6159e 100644 --- a/source/renderer/backend/vulkan/DescriptorManager.h +++ b/source/renderer/backend/vulkan/DescriptorManager.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,20 +18,26 @@ #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_DESCRIPTORMANAGER #define INCLUDED_RENDERER_BACKEND_VULKAN_DESCRIPTORMANAGER +#include "lib/debug.h" #include "ps/CStrIntern.h" -#include "renderer/backend/Sampler.h" -#include "renderer/backend/vulkan/Buffer.h" #include "renderer/backend/vulkan/Device.h" -#include "renderer/backend/vulkan/Texture.h" +#include "renderer/backend/vulkan/DeviceObjectUID.h" +#include +#include +#include +#include #include #include #include -#include #include #include #include +namespace Renderer::Backend { class ITexture; } +namespace Renderer::Backend::Vulkan { class CBuffer; } +namespace Renderer::Backend::Vulkan { class CTexture; } + namespace Renderer { @@ -41,8 +47,6 @@ namespace Backend namespace Vulkan { -class CDevice; - class CDescriptorManager { public: diff --git a/source/renderer/backend/vulkan/Device.cpp b/source/renderer/backend/vulkan/Device.cpp index b65dc08e57..965077f600 100644 --- a/source/renderer/backend/vulkan/Device.cpp +++ b/source/renderer/backend/vulkan/Device.cpp @@ -19,13 +19,15 @@ #include "Device.h" -#include "lib/external_libraries/libsdl.h" -#include "lib/hash.h" +#include "lib/alignment.h" +#include "lib/debug.h" #include "lib/sysdep/os.h" -#include "maths/MathUtil.h" #include "ps/CLogger.h" #include "ps/ConfigDB.h" #include "ps/Profile.h" +#include "ps/containers/Span.h" +#include "ps/containers/StaticVector.h" +#include "renderer/backend/Format.h" #include "renderer/backend/vulkan/Buffer.h" #include "renderer/backend/vulkan/DescriptorManager.h" #include "renderer/backend/vulkan/DeviceCommandContext.h" @@ -41,18 +43,22 @@ #include "renderer/backend/vulkan/SwapChain.h" #include "renderer/backend/vulkan/Texture.h" #include "renderer/backend/vulkan/Utilities.h" -#include "scriptinterface/JSON.h" #include "scriptinterface/Object.h" -#include "scriptinterface/ScriptInterface.h" #include "scriptinterface/ScriptRequest.h" +#include +#include #include +#include #include +#include +#include +#include #include #include #include -#include #include +#include // According to https://wiki.libsdl.org/SDL_Vulkan_LoadLibrary the following // functionality is supported since SDL 2.0.6. diff --git a/source/renderer/backend/vulkan/Device.h b/source/renderer/backend/vulkan/Device.h index 7d4a394ba5..4c855238cb 100644 --- a/source/renderer/backend/vulkan/Device.h +++ b/source/renderer/backend/vulkan/Device.h @@ -18,23 +18,37 @@ #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_DEVICE #define INCLUDED_RENDERER_BACKEND_VULKAN_DEVICE +#include "ps/CStr.h" #include "renderer/backend/Backend.h" +#include "renderer/backend/IBuffer.h" #include "renderer/backend/IDevice.h" +#include "renderer/backend/ITexture.h" #include "renderer/backend/vulkan/DeviceForward.h" +#include "renderer/backend/vulkan/DeviceObjectUID.h" #include "renderer/backend/vulkan/DeviceSelection.h" -#include "renderer/backend/vulkan/Texture.h" #include "renderer/backend/vulkan/VMA.h" -#include "scriptinterface/ScriptForward.h" +#include +#include #include -#include +#include #include +#include #include #include -#include -#include +#include #include +namespace Renderer::Backend { enum class Format; } +namespace Renderer::Backend::Vulkan { class CBuffer; } +namespace Renderer::Backend::Vulkan { class CDescriptorManager; } +namespace Renderer::Backend::Vulkan { class CRenderPassManager; } +namespace Renderer::Backend::Vulkan { class CRingCommandContext; } +namespace Renderer::Backend::Vulkan { class CSamplerManager; } +namespace Renderer::Backend::Vulkan { class CSubmitScheduler; } +namespace Renderer::Backend::Vulkan { class CSwapChain; } +namespace Renderer::Backend::Vulkan { class CTexture; } + typedef struct SDL_Window SDL_Window; namespace Renderer @@ -48,16 +62,6 @@ namespace Vulkan static constexpr size_t NUMBER_OF_FRAMES_IN_FLIGHT = 3; -class CBuffer; -class CDescriptorManager; -class CFramebuffer; -class CRenderPassManager; -class CRingCommandContext; -class CSamplerManager; -class CSubmitScheduler; -class CSwapChain; -class CTexture; - class CDevice final : public IDevice { public: diff --git a/source/renderer/backend/vulkan/DeviceCommandContext.cpp b/source/renderer/backend/vulkan/DeviceCommandContext.cpp index f0ae491827..89c4bdb000 100644 --- a/source/renderer/backend/vulkan/DeviceCommandContext.cpp +++ b/source/renderer/backend/vulkan/DeviceCommandContext.cpp @@ -19,15 +19,25 @@ #include "DeviceCommandContext.h" +#include "graphics/Color.h" #include "lib/bits.h" -#include "maths/MathUtil.h" +#include "lib/code_annotation.h" +#include "lib/debug.h" #include "ps/CLogger.h" #include "ps/ConfigDB.h" #include "ps/containers/Span.h" #include "ps/containers/StaticVector.h" +#include "renderer/backend/Format.h" +#include "renderer/backend/IBuffer.h" +#include "renderer/backend/IFramebuffer.h" +#include "renderer/backend/IShaderProgram.h" +#include "renderer/backend/ITexture.h" +#include "renderer/backend/PipelineState.h" +#include "renderer/backend/Sampler.h" #include "renderer/backend/vulkan/Buffer.h" #include "renderer/backend/vulkan/DescriptorManager.h" #include "renderer/backend/vulkan/Device.h" +#include "renderer/backend/vulkan/DeviceSelection.h" #include "renderer/backend/vulkan/Framebuffer.h" #include "renderer/backend/vulkan/Mapping.h" #include "renderer/backend/vulkan/PipelineState.h" @@ -38,7 +48,10 @@ #include #include +#include +#include #include +#include namespace Renderer { diff --git a/source/renderer/backend/vulkan/DeviceSelection.cpp b/source/renderer/backend/vulkan/DeviceSelection.cpp index 90d94aaece..057f0aa552 100644 --- a/source/renderer/backend/vulkan/DeviceSelection.cpp +++ b/source/renderer/backend/vulkan/DeviceSelection.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,16 +19,16 @@ #include "DeviceSelection.h" -#include "lib/code_annotation.h" -#include "lib/config2.h" -#include "renderer/backend/vulkan/Device.h" +#include "ps/CLogger.h" #include "renderer/backend/vulkan/Utilities.h" -#include "scriptinterface/JSON.h" #include "scriptinterface/Object.h" -#include "scriptinterface/ScriptInterface.h" #include "scriptinterface/ScriptRequest.h" #include +#include +#include +#include +#include #include #include #include diff --git a/source/renderer/backend/vulkan/DeviceSelection.h b/source/renderer/backend/vulkan/DeviceSelection.h index c4908e92f8..961eac0763 100644 --- a/source/renderer/backend/vulkan/DeviceSelection.h +++ b/source/renderer/backend/vulkan/DeviceSelection.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,12 +18,16 @@ #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_DEVICESELECTION #define INCLUDED_RENDERER_BACKEND_VULKAN_DEVICESELECTION -#include "scriptinterface/ScriptForward.h" - +#include +#include #include +#include #include +#include #include +class ScriptRequest; + namespace Renderer { diff --git a/source/renderer/backend/vulkan/Framebuffer.cpp b/source/renderer/backend/vulkan/Framebuffer.cpp index 21e4004fbf..1cff86a1a2 100644 --- a/source/renderer/backend/vulkan/Framebuffer.cpp +++ b/source/renderer/backend/vulkan/Framebuffer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,8 +19,10 @@ #include "Framebuffer.h" +#include "lib/debug.h" +#include "ps/CLogger.h" +#include "renderer/backend/ITexture.h" #include "renderer/backend/vulkan/Device.h" -#include "renderer/backend/vulkan/Mapping.h" #include "renderer/backend/vulkan/RenderPassManager.h" #include "renderer/backend/vulkan/Texture.h" #include "renderer/backend/vulkan/Utilities.h" diff --git a/source/renderer/backend/vulkan/Framebuffer.h b/source/renderer/backend/vulkan/Framebuffer.h index a37800fef1..cf6e50155c 100644 --- a/source/renderer/backend/vulkan/Framebuffer.h +++ b/source/renderer/backend/vulkan/Framebuffer.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,13 +18,18 @@ #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_FRAMEBUFFER #define INCLUDED_RENDERER_BACKEND_VULKAN_FRAMEBUFFER +#include "graphics/Color.h" #include "ps/containers/StaticVector.h" #include "renderer/backend/IFramebuffer.h" #include "renderer/backend/vulkan/DeviceObjectUID.h" +#include #include #include +namespace Renderer::Backend::Vulkan { class CDevice; } +namespace Renderer::Backend::Vulkan { class CTexture; } + namespace Renderer { @@ -34,9 +39,6 @@ namespace Backend namespace Vulkan { -class CDevice; -class CTexture; - class CFramebuffer final : public IFramebuffer { public: diff --git a/source/renderer/backend/vulkan/Mapping.cpp b/source/renderer/backend/vulkan/Mapping.cpp index 147376de3e..6fd82fe1b4 100644 --- a/source/renderer/backend/vulkan/Mapping.cpp +++ b/source/renderer/backend/vulkan/Mapping.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,9 +19,13 @@ #include "Mapping.h" -#include "lib/code_annotation.h" -#include "lib/config2.h" +#include "lib/debug.h" +#include "renderer/backend/Barrier.h" #include "renderer/backend/CompareOp.h" +#include "renderer/backend/Format.h" +#include "renderer/backend/IFramebuffer.h" +#include "renderer/backend/PipelineState.h" +#include "renderer/backend/Sampler.h" namespace Renderer { diff --git a/source/renderer/backend/vulkan/Mapping.h b/source/renderer/backend/vulkan/Mapping.h index 19af3cbea9..18343f862f 100644 --- a/source/renderer/backend/vulkan/Mapping.h +++ b/source/renderer/backend/vulkan/Mapping.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,14 +18,20 @@ #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_MAPPING #define INCLUDED_RENDERER_BACKEND_VULKAN_MAPPING -#include "renderer/backend/Barrier.h" -#include "renderer/backend/Format.h" -#include "renderer/backend/IFramebuffer.h" -#include "renderer/backend/PipelineState.h" -#include "renderer/backend/Sampler.h" - +#include #include +namespace Renderer::Backend { enum class AttachmentLoadOp; } +namespace Renderer::Backend { enum class AttachmentStoreOp; } +namespace Renderer::Backend { enum class BlendFactor; } +namespace Renderer::Backend { enum class BlendOp; } +namespace Renderer::Backend { enum class CompareOp; } +namespace Renderer::Backend { enum class CullMode; } +namespace Renderer::Backend { enum class Format; } +namespace Renderer::Backend { enum class PolygonMode; } +namespace Renderer::Backend { enum class StencilOp; } +namespace Renderer::Backend::Sampler { enum class AddressMode; } + namespace Renderer { diff --git a/source/renderer/backend/vulkan/PipelineState.cpp b/source/renderer/backend/vulkan/PipelineState.cpp index ac31269242..2c8a323b68 100644 --- a/source/renderer/backend/vulkan/PipelineState.cpp +++ b/source/renderer/backend/vulkan/PipelineState.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,16 +19,24 @@ #include "PipelineState.h" +#include "lib/debug.h" #include "lib/hash.h" #include "ps/CLogger.h" #include "ps/containers/StaticVector.h" +#include "renderer/backend/IShaderProgram.h" #include "renderer/backend/vulkan/Device.h" +#include "renderer/backend/vulkan/DeviceSelection.h" #include "renderer/backend/vulkan/Framebuffer.h" #include "renderer/backend/vulkan/Mapping.h" #include "renderer/backend/vulkan/ShaderProgram.h" #include "renderer/backend/vulkan/Utilities.h" #include +#include +#include +#include +#include +#include namespace Renderer { diff --git a/source/renderer/backend/vulkan/PipelineState.h b/source/renderer/backend/vulkan/PipelineState.h index 77fc8bee04..8c0d5f64e9 100644 --- a/source/renderer/backend/vulkan/PipelineState.h +++ b/source/renderer/backend/vulkan/PipelineState.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,16 +18,19 @@ #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_PIPELINESTATE #define INCLUDED_RENDERER_BACKEND_VULKAN_PIPELINESTATE +#include "graphics/Color.h" #include "renderer/backend/PipelineState.h" -#include "renderer/backend/vulkan/Framebuffer.h" -#include "renderer/backend/vulkan/ShaderProgram.h" #include "renderer/backend/vulkan/DeviceObjectUID.h" -#include +#include #include #include #include +namespace Renderer::Backend::Vulkan { class CDevice; } +namespace Renderer::Backend::Vulkan { class CFramebuffer; } +namespace Renderer::Backend::Vulkan { class CVertexInputLayout; } + namespace Renderer { @@ -37,9 +40,6 @@ namespace Backend namespace Vulkan { -class CDevice; -class CFramebuffer; - class CGraphicsPipelineState final : public IGraphicsPipelineState { public: diff --git a/source/renderer/backend/vulkan/RenderPassManager.cpp b/source/renderer/backend/vulkan/RenderPassManager.cpp index 71025f1f62..a9779195fe 100644 --- a/source/renderer/backend/vulkan/RenderPassManager.cpp +++ b/source/renderer/backend/vulkan/RenderPassManager.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -20,12 +20,17 @@ #include "RenderPassManager.h" #include "lib/hash.h" +#include "ps/CLogger.h" #include "ps/containers/StaticVector.h" +#include "renderer/backend/IFramebuffer.h" +#include "renderer/backend/ITexture.h" #include "renderer/backend/vulkan/Device.h" #include "renderer/backend/vulkan/Mapping.h" #include "renderer/backend/vulkan/Texture.h" #include "renderer/backend/vulkan/Utilities.h" +#include + namespace Renderer { diff --git a/source/renderer/backend/vulkan/RenderPassManager.h b/source/renderer/backend/vulkan/RenderPassManager.h index 935c599663..cf8a5d61b5 100644 --- a/source/renderer/backend/vulkan/RenderPassManager.h +++ b/source/renderer/backend/vulkan/RenderPassManager.h @@ -18,14 +18,18 @@ #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_RENDERPASSMANAGER #define INCLUDED_RENDERER_BACKEND_VULKAN_RENDERPASSMANAGER -#include "renderer/backend/IFramebuffer.h" - #include #include #include #include #include +namespace Renderer::Backend { enum class AttachmentLoadOp; } +namespace Renderer::Backend { enum class AttachmentStoreOp; } +namespace Renderer::Backend { struct SColorAttachment; } +namespace Renderer::Backend { struct SDepthStencilAttachment; } +namespace Renderer::Backend::Vulkan { class CDevice; } + namespace Renderer { @@ -35,8 +39,6 @@ namespace Backend namespace Vulkan { -class CDevice; - /** * A helper class to store unique render passes. */ diff --git a/source/renderer/backend/vulkan/RingCommandContext.cpp b/source/renderer/backend/vulkan/RingCommandContext.cpp index 7efb15e78c..9c3606dd03 100644 --- a/source/renderer/backend/vulkan/RingCommandContext.cpp +++ b/source/renderer/backend/vulkan/RingCommandContext.cpp @@ -20,12 +20,20 @@ #include "RingCommandContext.h" #include "lib/bits.h" +#include "lib/debug.h" +#include "ps/CLogger.h" +#include "renderer/backend/Format.h" +#include "renderer/backend/IBuffer.h" +#include "renderer/backend/ITexture.h" #include "renderer/backend/vulkan/Buffer.h" #include "renderer/backend/vulkan/Device.h" +#include "renderer/backend/vulkan/DeviceSelection.h" +#include "renderer/backend/vulkan/Texture.h" #include "renderer/backend/vulkan/Utilities.h" #include #include +#include #include namespace Renderer diff --git a/source/renderer/backend/vulkan/RingCommandContext.h b/source/renderer/backend/vulkan/RingCommandContext.h index e250fd16c4..9911011e61 100644 --- a/source/renderer/backend/vulkan/RingCommandContext.h +++ b/source/renderer/backend/vulkan/RingCommandContext.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,13 +18,21 @@ #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_RINGCOMMANDCONTEXT #define INCLUDED_RENDERER_BACKEND_VULKAN_RINGCOMMANDCONTEXT +#include "lib/types.h" #include "renderer/backend/vulkan/SubmitScheduler.h" -#include +#include +#include #include +#include #include #include +namespace Renderer::Backend { enum class Format; } +namespace Renderer::Backend::Vulkan { class CBuffer; } +namespace Renderer::Backend::Vulkan { class CDevice; } +namespace Renderer::Backend::Vulkan { class CTexture; } + namespace Renderer { @@ -34,9 +42,6 @@ namespace Backend namespace Vulkan { -class CBuffer; -class CDevice; - /** * A simple helper class to decouple command buffers rotation from frames * presenting. It might be useful when sometimes we need to submit more work diff --git a/source/renderer/backend/vulkan/SamplerManager.cpp b/source/renderer/backend/vulkan/SamplerManager.cpp index d20ff5a5c1..755a6c013b 100644 --- a/source/renderer/backend/vulkan/SamplerManager.cpp +++ b/source/renderer/backend/vulkan/SamplerManager.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -20,10 +20,15 @@ #include "SamplerManager.h" #include "lib/hash.h" +#include "ps/CLogger.h" +#include "renderer/backend/IDevice.h" #include "renderer/backend/vulkan/Device.h" #include "renderer/backend/vulkan/Mapping.h" #include "renderer/backend/vulkan/Utilities.h" +#include +#include + namespace Renderer { diff --git a/source/renderer/backend/vulkan/SamplerManager.h b/source/renderer/backend/vulkan/SamplerManager.h index c11d3e5cb8..8ce79390bf 100644 --- a/source/renderer/backend/vulkan/SamplerManager.h +++ b/source/renderer/backend/vulkan/SamplerManager.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -20,8 +20,8 @@ #include "renderer/backend/Sampler.h" +#include #include -#include #include namespace Renderer diff --git a/source/renderer/backend/vulkan/ShaderProgram.cpp b/source/renderer/backend/vulkan/ShaderProgram.cpp index 3f9d7a083b..4233296c05 100644 --- a/source/renderer/backend/vulkan/ShaderProgram.cpp +++ b/source/renderer/backend/vulkan/ShaderProgram.cpp @@ -20,21 +20,33 @@ #include "ShaderProgram.h" #include "graphics/ShaderDefines.h" +#include "lib/path.h" +#include "lib/utf8.h" #include "ps/CLogger.h" -#include "ps/containers/StaticVector.h" #include "ps/CStr.h" #include "ps/CStrInternStatic.h" +#include "ps/Errors.h" #include "ps/Filesystem.h" -#include "ps/Profile.h" +#include "ps/XMB/XMBData.h" +#include "ps/XMB/XMBStorage.h" #include "ps/XML/Xeromyces.h" +#include "ps/containers/StaticVector.h" +#include "renderer/backend/ITexture.h" +#include "renderer/backend/vulkan/Buffer.h" #include "renderer/backend/vulkan/DescriptorManager.h" #include "renderer/backend/vulkan/Device.h" +#include "renderer/backend/vulkan/DeviceSelection.h" #include "renderer/backend/vulkan/RingCommandContext.h" #include "renderer/backend/vulkan/Texture.h" #include "renderer/backend/vulkan/Utilities.h" #include +#include +#include #include +#include +#include +#include namespace Renderer { diff --git a/source/renderer/backend/vulkan/ShaderProgram.h b/source/renderer/backend/vulkan/ShaderProgram.h index ec1b81e429..3718bd36b4 100644 --- a/source/renderer/backend/vulkan/ShaderProgram.h +++ b/source/renderer/backend/vulkan/ShaderProgram.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,21 +18,31 @@ #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_SHADERPROGRAM #define INCLUDED_RENDERER_BACKEND_VULKAN_SHADERPROGRAM +#include "lib/debug.h" +#include "lib/file/vfs/vfs_path.h" +#include "ps/CStr.h" +#include "ps/CStrIntern.h" +#include "ps/containers/Span.h" +#include "renderer/backend/Format.h" #include "renderer/backend/IShaderProgram.h" -#include "renderer/backend/vulkan/Buffer.h" #include "renderer/backend/vulkan/DescriptorManager.h" -#include "renderer/backend/vulkan/Texture.h" #include #include +#include #include #include #include #include +#include #include class CShaderDefines; class CStr; +namespace Renderer::Backend::Vulkan { class CBuffer; } +namespace Renderer::Backend::Vulkan { class CDevice; } +namespace Renderer::Backend::Vulkan { class CRingCommandContext; } +namespace Renderer::Backend::Vulkan { class CTexture; } namespace Renderer { @@ -43,9 +53,6 @@ namespace Backend namespace Vulkan { -class CDevice; -class CRingCommandContext; - class CVertexInputLayout : public IVertexInputLayout { public: diff --git a/source/renderer/backend/vulkan/SubmitScheduler.cpp b/source/renderer/backend/vulkan/SubmitScheduler.cpp index d5a6369807..791b056c85 100644 --- a/source/renderer/backend/vulkan/SubmitScheduler.cpp +++ b/source/renderer/backend/vulkan/SubmitScheduler.cpp @@ -19,12 +19,17 @@ #include "SubmitScheduler.h" +#include "lib/debug.h" +#include "ps/CLogger.h" #include "ps/ConfigDB.h" #include "renderer/backend/vulkan/Device.h" #include "renderer/backend/vulkan/RingCommandContext.h" #include "renderer/backend/vulkan/SwapChain.h" #include "renderer/backend/vulkan/Utilities.h" +#include +#include + namespace Renderer { diff --git a/source/renderer/backend/vulkan/SubmitScheduler.h b/source/renderer/backend/vulkan/SubmitScheduler.h index 8f81f58318..a5d07432ff 100644 --- a/source/renderer/backend/vulkan/SubmitScheduler.h +++ b/source/renderer/backend/vulkan/SubmitScheduler.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -20,12 +20,16 @@ #include "renderer/backend/vulkan/Device.h" +#include +#include #include #include #include -#include #include +namespace Renderer::Backend::Vulkan { class CRingCommandContext; } +namespace Renderer::Backend::Vulkan { class CSwapChain; } + namespace Renderer { @@ -35,10 +39,6 @@ namespace Backend namespace Vulkan { -class CDevice; -class CRingCommandContext; -class CSwapChain; - /** * A helper class to batch VkQueueSubmit calls and track VkCommandBuffer usages * properly. diff --git a/source/renderer/backend/vulkan/SwapChain.cpp b/source/renderer/backend/vulkan/SwapChain.cpp index 0aff50ce60..ad4374e0f8 100644 --- a/source/renderer/backend/vulkan/SwapChain.cpp +++ b/source/renderer/backend/vulkan/SwapChain.cpp @@ -19,18 +19,26 @@ #include "SwapChain.h" +#include "graphics/Color.h" +#include "lib/debug.h" #include "lib/hash.h" #include "maths/MathUtil.h" +#include "ps/CLogger.h" #include "ps/ConfigDB.h" -#include "ps/Profile.h" +#include "renderer/backend/ITexture.h" +#include "renderer/backend/Sampler.h" #include "renderer/backend/vulkan/Device.h" +#include "renderer/backend/vulkan/DeviceSelection.h" #include "renderer/backend/vulkan/Framebuffer.h" #include "renderer/backend/vulkan/RingCommandContext.h" #include "renderer/backend/vulkan/Texture.h" #include "renderer/backend/vulkan/Utilities.h" #include +#include +#include #include +#include namespace Renderer { diff --git a/source/renderer/backend/vulkan/Texture.cpp b/source/renderer/backend/vulkan/Texture.cpp index 12c4819a8b..5e346aa539 100644 --- a/source/renderer/backend/vulkan/Texture.cpp +++ b/source/renderer/backend/vulkan/Texture.cpp @@ -19,7 +19,11 @@ #include "Texture.h" +#include "lib/debug.h" +#include "ps/CLogger.h" +#include "renderer/backend/Sampler.h" #include "renderer/backend/vulkan/Device.h" +#include "renderer/backend/vulkan/DeviceSelection.h" #include "renderer/backend/vulkan/Mapping.h" #include "renderer/backend/vulkan/SamplerManager.h" #include "renderer/backend/vulkan/Utilities.h" diff --git a/source/renderer/backend/vulkan/Texture.h b/source/renderer/backend/vulkan/Texture.h index 155b4465ff..f038ad55a3 100644 --- a/source/renderer/backend/vulkan/Texture.h +++ b/source/renderer/backend/vulkan/Texture.h @@ -18,14 +18,18 @@ #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_TEXTURE #define INCLUDED_RENDERER_BACKEND_VULKAN_TEXTURE +#include "renderer/backend/Format.h" #include "renderer/backend/ITexture.h" -#include "renderer/backend/Sampler.h" #include "renderer/backend/vulkan/DeviceObjectUID.h" #include "renderer/backend/vulkan/VMA.h" +#include #include #include +namespace Renderer::Backend::Sampler { struct Desc; } +namespace Renderer::Backend::Vulkan { class CDevice; } + namespace Renderer { @@ -35,8 +39,6 @@ namespace Backend namespace Vulkan { -class CDevice; - class CTexture final : public ITexture { public: diff --git a/source/renderer/backend/vulkan/Utilities.cpp b/source/renderer/backend/vulkan/Utilities.cpp index 304e9326b3..a98306f498 100644 --- a/source/renderer/backend/vulkan/Utilities.cpp +++ b/source/renderer/backend/vulkan/Utilities.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,8 +19,6 @@ #include "Utilities.h" -#include "lib/code_annotation.h" -#include "lib/config2.h" #include "renderer/backend/vulkan/Buffer.h" #include "renderer/backend/vulkan/Texture.h" diff --git a/source/renderer/backend/vulkan/Utilities.h b/source/renderer/backend/vulkan/Utilities.h index 93d5459ae7..e33bd843ea 100644 --- a/source/renderer/backend/vulkan/Utilities.h +++ b/source/renderer/backend/vulkan/Utilities.h @@ -18,7 +18,8 @@ #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_UTILITIES #define INCLUDED_RENDERER_BACKEND_VULKAN_UTILITIES -#include "ps/CStr.h" +#include "lib/debug.h" +#include "ps/CLogger.h" #include #include diff --git a/source/renderer/backend/vulkan/VMA.h b/source/renderer/backend/vulkan/VMA.h index ebb335f28f..d2c7c6b9ff 100644 --- a/source/renderer/backend/vulkan/VMA.h +++ b/source/renderer/backend/vulkan/VMA.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,11 +19,9 @@ #define INCLUDED_RENDERER_BACKEND_VULKAN_VMA #include "lib/debug.h" -#include "lib/sysdep/os.h" -#include "ps/CLogger.h" +#include "lib/sysdep/compiler.h" #include -#include #define VMA_VULKAN_VERSION 1001000 #define VMA_ASSERT(EXPR) ASSERT(EXPR) diff --git a/source/simulation2/components/CCmpOverlayRenderer.cpp b/source/simulation2/components/CCmpOverlayRenderer.cpp index 7579caee01..7e54ae1037 100644 --- a/source/simulation2/components/CCmpOverlayRenderer.cpp +++ b/source/simulation2/components/CCmpOverlayRenderer.cpp @@ -21,6 +21,7 @@ #include "graphics/Overlay.h" #include "graphics/TextureManager.h" +#include "maths/Matrix3D.h" #include "ps/CLogger.h" #include "ps/Profile.h" #include "renderer/Renderer.h" diff --git a/source/simulation2/components/CCmpSelectable.cpp b/source/simulation2/components/CCmpSelectable.cpp index effbd07be5..6c57becfbc 100644 --- a/source/simulation2/components/CCmpSelectable.cpp +++ b/source/simulation2/components/CCmpSelectable.cpp @@ -23,23 +23,24 @@ #include "graphics/Terrain.h" #include "graphics/TextureManager.h" #include "maths/Ease.h" +#include "maths/Frustum.h" #include "maths/MathUtil.h" #include "maths/Matrix3D.h" -#include "maths/Vector3D.h" #include "maths/Vector2D.h" +#include "maths/Vector3D.h" #include "ps/CLogger.h" #include "ps/Profile.h" #include "renderer/Renderer.h" #include "renderer/Scene.h" #include "renderer/backend/Sampler.h" #include "simulation2/MessageTypes.h" -#include "simulation2/components/ICmpPosition.h" #include "simulation2/components/ICmpFootprint.h" -#include "simulation2/components/ICmpVisual.h" -#include "simulation2/components/ICmpTerrain.h" #include "simulation2/components/ICmpOwnership.h" #include "simulation2/components/ICmpPlayer.h" #include "simulation2/components/ICmpPlayerManager.h" +#include "simulation2/components/ICmpPosition.h" +#include "simulation2/components/ICmpTerrain.h" +#include "simulation2/components/ICmpVisual.h" #include "simulation2/components/ICmpWaterManager.h" #include "simulation2/helpers/Render.h" #include "simulation2/system/Component.h"