[idd] helper: wait for display mode enumeration

This commit is contained in:
Geoffrey McRae
2026-08-17 02:21:53 +10:00
parent 9d074519b2
commit 94754051a8
2 changed files with 254 additions and 28 deletions

View File

@@ -43,6 +43,14 @@ private:
bool m_clipboardEnabled = false;
CSRWLock m_displayLock;
CSRWLock m_displayModeLock;
HANDLE m_displayModeStop = nullptr;
HANDLE m_displayModeWake = nullptr;
HANDLE m_displayModeThread = nullptr;
LGPipeMsg m_displayMode = {};
uint64_t m_displayModeSerial = 0;
bool m_hasDisplayMode = false;
bool m_recoveryActive = false;
bool m_hasRecoveryStatus = false;
LGPipeMsg m_recoveryStatus = {};
@@ -51,6 +59,13 @@ private:
void SetActiveDesktop();
static DWORD WINAPI DisplayModeThreadProc(void * context);
void DisplayModeThread();
bool StartDisplayModeThread();
void StopDisplayModeThread();
bool ApplyDisplayMode(const LGPipeMsg& msg, LONG& result);
bool VerifyDisplayMode(const LGPipeMsg& msg);
bool EnsureOnlyDisplayLocked();
uint32_t RestoreSavedTopologyLocked() const;
uint32_t RestoreLGTopologyLocked();