Enhance XCUI demo text editing and host bridge
This commit is contained in:
@@ -28,6 +28,8 @@ set(EDITOR_TEST_SOURCES
|
||||
test_viewport_object_id_picker.cpp
|
||||
test_viewport_render_targets.cpp
|
||||
test_viewport_render_flow_utils.cpp
|
||||
test_imgui_backend_bridge_api.cpp
|
||||
test_window_renderer_api.cpp
|
||||
test_builtin_icon_layout_utils.cpp
|
||||
test_xcui_draw_data.cpp
|
||||
test_xcui_imgui_transition_backend.cpp
|
||||
|
||||
22
tests/editor/test_editor_console_sink.cpp
Normal file
22
tests/editor/test_editor_console_sink.cpp
Normal file
@@ -0,0 +1,22 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "Core/EditorConsoleSink.h"
|
||||
|
||||
namespace XCEngine::Debug {
|
||||
namespace {
|
||||
|
||||
TEST(EditorConsoleSink, GetInstanceTracksRegisteredSinkOnly) {
|
||||
EditorConsoleSink* registeredInstance = nullptr;
|
||||
|
||||
{
|
||||
EditorConsoleSink sink;
|
||||
registeredInstance = &sink;
|
||||
|
||||
EXPECT_EQ(EditorConsoleSink::GetInstance(), registeredInstance);
|
||||
}
|
||||
|
||||
EXPECT_EQ(EditorConsoleSink::GetInstance(), nullptr);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
} // namespace XCEngine::Debug
|
||||
40
tests/editor/test_imgui_backend_bridge_api.cpp
Normal file
40
tests/editor/test_imgui_backend_bridge_api.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "UI/ImGuiBackendBridge.h"
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
namespace {
|
||||
|
||||
using XCEngine::Editor::UI::ImGuiBackendBridge;
|
||||
using XCEngine::RHI::RHIDevice;
|
||||
using XCEngine::RHI::RHIResourceView;
|
||||
using XCEngine::RHI::RHITexture;
|
||||
|
||||
TEST(ImGuiBackendBridgeApiTest, ExposesExistingShaderResourceViewRegistrationOverload) {
|
||||
using TextureDescriptorFromTextureSignature = bool (ImGuiBackendBridge::*)(
|
||||
RHIDevice*,
|
||||
RHITexture*,
|
||||
D3D12_CPU_DESCRIPTOR_HANDLE*,
|
||||
D3D12_GPU_DESCRIPTOR_HANDLE*,
|
||||
ImTextureID*);
|
||||
using TextureDescriptorFromSrvSignature = bool (ImGuiBackendBridge::*)(
|
||||
RHIDevice*,
|
||||
RHIResourceView*,
|
||||
D3D12_CPU_DESCRIPTOR_HANDLE*,
|
||||
D3D12_GPU_DESCRIPTOR_HANDLE*,
|
||||
ImTextureID*);
|
||||
|
||||
static_assert(std::is_same_v<
|
||||
decltype(static_cast<TextureDescriptorFromTextureSignature>(
|
||||
&ImGuiBackendBridge::CreateTextureDescriptor)),
|
||||
TextureDescriptorFromTextureSignature>);
|
||||
static_assert(std::is_same_v<
|
||||
decltype(static_cast<TextureDescriptorFromSrvSignature>(
|
||||
&ImGuiBackendBridge::CreateTextureDescriptor)),
|
||||
TextureDescriptorFromSrvSignature>);
|
||||
|
||||
SUCCEED();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
28
tests/editor/test_window_renderer_api.cpp
Normal file
28
tests/editor/test_window_renderer_api.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "Platform/D3D12WindowRenderer.h"
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
namespace {
|
||||
|
||||
using XCEngine::Editor::Platform::D3D12WindowRenderer;
|
||||
using XCEngine::Rendering::RenderSurface;
|
||||
|
||||
TEST(D3D12WindowRendererApiTest, ExposesSurfaceAwareRenderCallbackAndAccessor) {
|
||||
using Callback = D3D12WindowRenderer::RenderCallback;
|
||||
|
||||
static_assert(std::is_same_v<
|
||||
decltype(std::declval<D3D12WindowRenderer&>().GetCurrentRenderSurface()),
|
||||
const RenderSurface*>);
|
||||
static_assert(std::is_same_v<
|
||||
decltype(std::declval<D3D12WindowRenderer&>().Render(
|
||||
std::declval<::XCEngine::Editor::UI::ImGuiBackendBridge&>(),
|
||||
std::declval<const float*>(),
|
||||
std::declval<const Callback&>())),
|
||||
void>);
|
||||
|
||||
SUCCEED();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Reference in New Issue
Block a user