Integrate XCUI shell state and runtime frame seams

This commit is contained in:
2026-04-05 12:50:55 +08:00
parent ec97445071
commit e5e9f348a3
29 changed files with 3183 additions and 102 deletions

View File

@@ -19,6 +19,7 @@ public:
const UIScreenStackController& GetStackController() const;
const UISystemFrameResult& GetLastFrame() const;
UISystemFrameResult ConsumeLastFrame();
void Reset();
void SetViewportRect(const UIRect& viewportRect);

View File

@@ -20,6 +20,7 @@ public:
const UIScreenAsset* GetAsset() const;
const UIScreenDocument* GetDocument() const;
const UIScreenFrameResult& GetLastFrame() const;
UIScreenFrameResult ConsumeLastFrame();
const std::string& GetLastError() const;
std::uint64_t GetPresentedFrameCount() const;

View File

@@ -89,9 +89,13 @@ struct UISystemPresentedLayer {
struct UISystemFrameResult {
UIDrawData drawData = {};
std::vector<UISystemPresentedLayer> layers = {};
UIRect viewportRect = {};
std::size_t presentedLayerCount = 0;
std::size_t skippedLayerCount = 0;
std::size_t submittedInputEventCount = 0;
std::uint64_t frameIndex = 0;
double deltaTimeSeconds = 0.0;
bool focused = false;
std::string errorMessage = {};
};

View File

@@ -31,6 +31,7 @@ public:
const UISystemFrameResult& Update(const UIScreenFrameInput& input);
void Tick(const UIScreenFrameInput& input);
const UISystemFrameResult& GetLastFrame() const;
UISystemFrameResult ConsumeLastFrame();
const std::vector<std::unique_ptr<UIScreenPlayer>>& GetPlayers() const;