- Add RenderDocCapture class for dynamic loading of renderdoc.dll - Support BeginCapture/EndCapture/TriggerCapture APIs - Add RenderDoc log category - Add unit tests for RenderDocCapture in tests/debug
52 lines
1.5 KiB
C++
52 lines
1.5 KiB
C++
#include <gtest/gtest.h>
|
|
#include "XCEngine/Debug/RenderDocCapture.h"
|
|
|
|
using namespace XCEngine::Debug;
|
|
|
|
TEST(RenderDocCaptureTest, Initialize) {
|
|
auto* rc = &RenderDocCapture::Get();
|
|
bool result = rc->Initialize(nullptr, nullptr);
|
|
EXPECT_TRUE(result) << "RenderDoc initialization failed - check if renderdoc.dll is available";
|
|
EXPECT_TRUE(rc->IsLoaded());
|
|
}
|
|
|
|
TEST(RenderDocCaptureTest, Shutdown) {
|
|
auto* rc = &RenderDocCapture::Get();
|
|
rc->Initialize(nullptr, nullptr);
|
|
ASSERT_TRUE(rc->IsLoaded()) << "RenderDoc not loaded";
|
|
rc->Shutdown();
|
|
}
|
|
|
|
TEST(RenderDocCaptureTest, BeginEndCapture) {
|
|
auto* rc = &RenderDocCapture::Get();
|
|
rc->Initialize(nullptr, nullptr);
|
|
ASSERT_TRUE(rc->IsLoaded()) << "RenderDoc not loaded";
|
|
|
|
rc->BeginCapture("UnitTestCapture");
|
|
rc->EndCapture();
|
|
}
|
|
|
|
TEST(RenderDocCaptureTest, TriggerCapture) {
|
|
auto* rc = &RenderDocCapture::Get();
|
|
rc->Initialize(nullptr, nullptr);
|
|
ASSERT_TRUE(rc->IsLoaded()) << "RenderDoc not loaded";
|
|
|
|
rc->TriggerCapture();
|
|
}
|
|
|
|
TEST(RenderDocCaptureTest, SetCaptureFilePath) {
|
|
auto* rc = &RenderDocCapture::Get();
|
|
rc->Initialize(nullptr, nullptr);
|
|
ASSERT_TRUE(rc->IsLoaded()) << "RenderDoc not loaded";
|
|
|
|
rc->SetCaptureFilePath(".\\test_captures");
|
|
}
|
|
|
|
TEST(RenderDocCaptureTest, SetCaptureComments) {
|
|
auto* rc = &RenderDocCapture::Get();
|
|
rc->Initialize(nullptr, nullptr);
|
|
ASSERT_TRUE(rc->IsLoaded()) << "RenderDoc not loaded";
|
|
|
|
rc->SetCaptureComments("Unit test capture");
|
|
}
|