engine: sync editor rendering and ui changes

This commit is contained in:
2026-04-08 16:09:15 +08:00
parent 31756847ab
commit 162f1cc12e
153 changed files with 4454 additions and 2990 deletions

View File

@@ -72,6 +72,9 @@ using XCEngine::Editor::BuildSceneViewportHudOverlayData;
using XCEngine::Editor::BuildSceneViewportViewMatrix;
using XCEngine::Editor::HitTestSceneViewportHudOverlay;
using XCEngine::Editor::ProjectSceneViewportWorldPoint;
using XCEngine::Editor::SceneViewportOverlayFrameData;
using XCEngine::Editor::SceneViewportOverlaySpritePrimitive;
using XCEngine::Editor::SceneViewportOverlaySpriteTextureKind;
using XCEngine::Editor::SceneViewportOverlayData;
using XCEngine::Components::GameObject;
using XCEngine::Math::Vector3;
@@ -284,6 +287,26 @@ TEST(SceneViewportOverlayRenderer_Test, BuildSceneViewportHudOverlayDataTracksVi
EXPECT_FALSE(hiddenHud.HasVisibleElements());
}
TEST(SceneViewportOverlayRenderer_Test, BuildSceneViewportHudOverlayDataCanExposeSceneIconsWithoutOrientationGizmo) {
SceneViewportOverlayData overlay = {};
overlay.valid = true;
SceneViewportOverlayFrameData frameData = {};
frameData.overlay = overlay;
SceneViewportOverlaySpritePrimitive& sprite = frameData.worldSprites.emplace_back();
sprite.worldPosition = Vector3::Zero();
sprite.sizePixels = XCEngine::Math::Vector2(32.0f, 32.0f);
sprite.textureKind = SceneViewportOverlaySpriteTextureKind::Camera;
const auto iconsOnlyHud = BuildSceneViewportHudOverlayData(
overlay,
false,
&frameData,
true);
EXPECT_TRUE(iconsOnlyHud.HasVisibleElements());
}
TEST(SceneViewportOverlayRenderer_Test, HitTestSceneViewportHudOverlaySkipsInvalidOrHiddenOverlay) {
const SceneViewportHudOverlayHitResult invalidHit =
HitTestSceneViewportHudOverlay({}, ImVec2(0.0f, 0.0f), ImVec2(200.0f, 200.0f), ImVec2(100.0f, 100.0f));