docs: update TEST_SPEC.md and README.md to reflect new directory structure

- TEST_SPEC.md: Updated test directory structure to reflect Core/Asset,
  Core/IO, and Resources/<Type> subdirectories
- TEST_SPEC.md: Updated module names and test counts (852 total)
- TEST_SPEC.md: Updated build commands for new Resources subdirectories
- README.md: Updated engine structure with Core/Asset/ and Core/IO/
- README.md: Updated Resources section with layered architecture
- README.md: Updated test coverage table with accurate counts
This commit is contained in:
2026-03-24 16:14:05 +08:00
parent 0b3423966d
commit d575532966
153 changed files with 13975 additions and 6085 deletions

View File

@@ -5,37 +5,46 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_library(XCEngine STATIC
# Math
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Math.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Vector2.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Vector3.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Vector4.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Matrix3.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Matrix4.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Quaternion.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Transform.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Color.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Ray.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Plane.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Sphere.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Box.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Bounds.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Frustum.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Rect.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/AABB.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Matrix.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Quaternion.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Transform.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Color.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Geometry.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/FrustumBounds.cpp
# Core (Types, RefCounted, SmartPtr, Event)
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Types.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/RefCounted.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/SmartPtr.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Event.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Core.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/FileWriter.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/FileWriter.cpp
# Containers
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/Containers.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/Array.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/String.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/HashMap.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Containers/String.cpp
# Core/Math
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Math.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Vector2.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Vector3.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Vector4.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Matrix3.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Matrix4.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Quaternion.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Transform.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Color.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Ray.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Plane.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Sphere.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Box.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Bounds.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Frustum.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Rect.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/AABB.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/Matrix.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/Quaternion.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/Transform.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/Color.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/Geometry.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/FrustumBounds.cpp
# Core/Containers
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Containers/Containers.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Containers/Array.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Containers/String.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Containers/HashMap.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Containers/String.cpp
# Memory
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/Allocator.h
@@ -60,10 +69,6 @@ add_library(XCEngine STATIC
${CMAKE_CURRENT_SOURCE_DIR}/src/Threading/TaskGroup.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Threading/TaskSystem.cpp
# Core
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/FileWriter.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/FileWriter.cpp
# Debug
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/Debug.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/LogLevel.h
@@ -156,60 +161,64 @@ add_library(XCEngine STATIC
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLUniformBufferManager.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLFramebuffer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLResourceView.cpp
${CMAKE_SOURCE_DIR}/tests/opengl/package/src/glad.c
${CMAKE_CURRENT_SOURCE_DIR}/../tests/opengl/package/src/glad.c
# RHI Factory
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/RHIFactory.cpp
# Resources
# Core/Asset (Resource System Core)
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/IResource.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ResourceTypes.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ImportSettings.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ResourceHandle.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ResourceManager.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ResourceCache.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/AsyncLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ResourceDependencyGraph.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/ResourceManager.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/ResourceCache.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/AsyncLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/ResourceTypes.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/ResourceDependencyGraph.cpp
# Core/IO (File System Abstraction)
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/IO/IResourceLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/IO/ResourcePath.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/IO/ResourceFileSystem.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/IO/FileArchive.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/IO/ResourcePackage.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/IO/IResourceLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/IO/ResourcePath.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/IO/ResourceFileSystem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/IO/FileArchive.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/IO/ResourcePackage.cpp
# Resources (Concrete Resource Types)
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Resources.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/ResourceTypes.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/IResource.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/ResourceHandle.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/IResourceLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/ResourceManager.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/ResourceCache.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/AsyncLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/ImportSettings.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Texture.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Mesh.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/TextureLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/TextureImportSettings.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/MeshLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/MeshImportSettings.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Material.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/MaterialLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Shader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/ShaderLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/AudioClip.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/AudioLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/ResourceFileSystem.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/FileArchive.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/ResourcePackage.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/ResourceDependencyGraph.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/ResourcePath.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/ResourceManager.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/ResourceCache.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/AsyncLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/ResourceTypes.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/IResourceLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Texture.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Mesh.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/TextureLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/TextureImportSettings.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/MeshLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/MeshImportSettings.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Material.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/MaterialLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Shader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/ShaderLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/AudioClip.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/AudioLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/ResourceFileSystem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/FileArchive.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/ResourcePackage.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/ResourceDependencyGraph.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/ResourcePath.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Texture/Texture.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Texture/TextureLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Texture/TextureImportSettings.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Mesh/Mesh.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Mesh/MeshLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Mesh/MeshImportSettings.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Material/Material.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Material/MaterialLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Shader/Shader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Shader/ShaderLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/AudioClip/AudioClip.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/AudioClip/AudioLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Texture/Texture.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Texture/TextureLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Texture/TextureImportSettings.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Mesh/Mesh.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Mesh/MeshLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Mesh/MeshImportSettings.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Material/Material.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Material/MaterialLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Shader/Shader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Shader/ShaderLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/AudioClip/AudioClip.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/AudioClip/AudioLoader.cpp
# Components
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/Component.h
@@ -227,9 +236,18 @@ add_library(XCEngine STATIC
# Platform
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/PlatformTypes.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/Window.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/Windows/WindowsWindow.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IPlatform.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IWindow.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IFileSystem.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IClock.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IDynamicLibrary.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IDisplayEnumerator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/GameTime.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Platform/Window.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/Windows/WindowsWindow.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Platform/Windows/WindowsWindow.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/Windows/WindowsInputModule.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Platform/Windows/WindowsInputModule.cpp
# Input
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Input/InputTypes.h
@@ -237,9 +255,7 @@ add_library(XCEngine STATIC
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Input/InputAxis.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Input/InputModule.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Input/InputManager.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Input/Platform/WindowsInputModule.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Input/InputManager.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Input/Windows/WindowsInputModule.cpp
# Audio
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/AudioTypes.h
@@ -247,9 +263,9 @@ add_library(XCEngine STATIC
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/IAudioEffect.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/IAudioBackend.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/AudioSystem.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/WASAPI/WASAPIBackend.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/WindowsAudioBackend.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/AudioSystem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/WASAPI/WASAPIBackend.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/WindowsAudioBackend.cpp
# Audio Components
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/AudioSourceComponent.h
@@ -284,7 +300,7 @@ target_include_directories(XCEngine PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_CURRENT_SOURCE_DIR}/third_party
${CMAKE_SOURCE_DIR}/tests/opengl/package/include
${CMAKE_CURRENT_SOURCE_DIR}/../tests/opengl/package/include
)
if(MSVC)
@@ -293,4 +309,4 @@ else()
target_compile_options(XCEngine PRIVATE -Wall)
endif()
target_compile_definitions(XCEngine PRIVATE XCENGINE_SUPPORT_OPENGL)
target_compile_definitions(XCEngine PRIVATE XCENGINE_SUPPORT_OPENGL)