mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-15 00:43:52 +00:00
chore(testing): add unit tests and update core render/network pipelines
- add new tests: - test_blp_loader.cpp - test_dbc_loader.cpp - test_entity.cpp - test_frustum.cpp - test_m2_structs.cpp - test_opcode_table.cpp - test_packet.cpp - test_srp.cpp - CMakeLists.txt - add docs and progress tracking: - TESTING.md - perf_baseline.md - update project config/build: - .gitignore - CMakeLists.txt - test.sh - core engine updates: - application.cpp - game_handler.cpp - world_socket.cpp - adt_loader.cpp - asset_manager.cpp - m2_renderer.cpp - post_process_pipeline.cpp - renderer.cpp - terrain_manager.cpp - game_screen.cpp - add profiler header: - profiler.hpp
This commit is contained in:
parent
a2814ab082
commit
2cb47bf126
25 changed files with 2042 additions and 96 deletions
|
|
@ -12,6 +12,7 @@
|
|||
#include "pipeline/asset_manager.hpp"
|
||||
#include "pipeline/blp_loader.hpp"
|
||||
#include "core/logger.hpp"
|
||||
#include "core/profiler.hpp"
|
||||
#include <chrono>
|
||||
#include <cctype>
|
||||
#include <glm/gtc/matrix_transform.hpp>
|
||||
|
|
@ -1866,6 +1867,7 @@ static glm::quat interpQuat(const pipeline::M2AnimationTrack& track,
|
|||
}
|
||||
|
||||
static void computeBoneMatrices(const M2ModelGPU& model, M2Instance& instance) {
|
||||
ZoneScopedN("M2::computeBoneMatrices");
|
||||
size_t numBones = std::min(model.bones.size(), size_t(128));
|
||||
if (numBones == 0) return;
|
||||
instance.boneMatrices.resize(numBones);
|
||||
|
|
@ -1898,6 +1900,7 @@ static void computeBoneMatrices(const M2ModelGPU& model, M2Instance& instance) {
|
|||
}
|
||||
|
||||
void M2Renderer::update(float deltaTime, const glm::vec3& cameraPos, const glm::mat4& viewProjection) {
|
||||
ZoneScopedN("M2Renderer::update");
|
||||
if (spatialIndexDirty_) {
|
||||
rebuildSpatialIndex();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "rendering/camera.hpp"
|
||||
#include "rendering/amd_fsr3_runtime.hpp"
|
||||
#include "core/logger.hpp"
|
||||
#include "core/profiler.hpp"
|
||||
#include <cstdlib>
|
||||
#include <algorithm>
|
||||
#include <glm/gtc/matrix_inverse.hpp>
|
||||
|
|
@ -152,6 +153,7 @@ bool PostProcessPipeline::hasActivePostProcess() const {
|
|||
|
||||
bool PostProcessPipeline::executePostProcessing(VkCommandBuffer cmd, uint32_t imageIndex,
|
||||
Camera* camera, float deltaTime) {
|
||||
ZoneScopedN("PostProcess::execute");
|
||||
currentCmd_ = cmd;
|
||||
camera_ = camera;
|
||||
lastDeltaTime_ = deltaTime;
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include "rendering/weather.hpp"
|
||||
#include "rendering/lightning.hpp"
|
||||
#include "rendering/lighting_manager.hpp"
|
||||
#include "core/profiler.hpp"
|
||||
#include "rendering/sky_system.hpp"
|
||||
#include "rendering/swim_effects.hpp"
|
||||
#include "rendering/mount_dust.hpp"
|
||||
|
|
@ -797,6 +798,7 @@ void Renderer::applyMsaaChange() {
|
|||
}
|
||||
|
||||
void Renderer::beginFrame() {
|
||||
ZoneScopedN("Renderer::beginFrame");
|
||||
if (!vkCtx) return;
|
||||
if (vkCtx->isDeviceLost()) return;
|
||||
|
||||
|
|
@ -924,6 +926,7 @@ void Renderer::beginFrame() {
|
|||
}
|
||||
|
||||
void Renderer::endFrame() {
|
||||
ZoneScopedN("Renderer::endFrame");
|
||||
if (!vkCtx || currentCmd == VK_NULL_HANDLE) return;
|
||||
|
||||
// Track whether a post-processing path switched to an INLINE render pass.
|
||||
|
|
@ -1190,6 +1193,7 @@ bool Renderer::isMoving() const {
|
|||
}
|
||||
|
||||
void Renderer::update(float deltaTime) {
|
||||
ZoneScopedN("Renderer::update");
|
||||
globalTime += deltaTime;
|
||||
if (musicSwitchCooldown_ > 0.0f) {
|
||||
musicSwitchCooldown_ = std::max(0.0f, musicSwitchCooldown_ - deltaTime);
|
||||
|
|
@ -1975,6 +1979,7 @@ float Renderer::getBrightness() const {
|
|||
}
|
||||
|
||||
void Renderer::renderWorld(game::World* world, game::GameHandler* gameHandler) {
|
||||
ZoneScopedN("Renderer::renderWorld");
|
||||
(void)world;
|
||||
|
||||
// Guard against null command buffer (e.g. after VK_ERROR_DEVICE_LOST)
|
||||
|
|
@ -3042,6 +3047,7 @@ void Renderer::renderReflectionPass() {
|
|||
}
|
||||
|
||||
void Renderer::renderShadowPass() {
|
||||
ZoneScopedN("Renderer::renderShadowPass");
|
||||
static const bool skipShadows = (std::getenv("WOWEE_SKIP_SHADOWS") != nullptr);
|
||||
if (skipShadows) return;
|
||||
if (!shadowsEnabled || shadowDepthImage[0] == VK_NULL_HANDLE) return;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "audio/ambient_sound_manager.hpp"
|
||||
#include "core/coordinates.hpp"
|
||||
#include "core/memory_monitor.hpp"
|
||||
#include "core/profiler.hpp"
|
||||
#include "pipeline/asset_manager.hpp"
|
||||
#include "pipeline/adt_loader.hpp"
|
||||
#include "pipeline/m2_loader.hpp"
|
||||
|
|
@ -188,6 +189,7 @@ bool TerrainManager::initialize(pipeline::AssetManager* assets, TerrainRenderer*
|
|||
}
|
||||
|
||||
void TerrainManager::update(const Camera& camera, float deltaTime) {
|
||||
ZoneScopedN("TerrainManager::update");
|
||||
if (!streamingEnabled || !assetManager || !terrainRenderer) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -1236,6 +1238,7 @@ void TerrainManager::workerLoop() {
|
|||
}
|
||||
|
||||
void TerrainManager::processReadyTiles() {
|
||||
ZoneScopedN("TerrainManager::processReadyTiles");
|
||||
// Move newly ready tiles into the finalizing deque.
|
||||
// Keep them in pendingTiles so streamTiles() won't re-enqueue them.
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue