46 lines
895 B
C++
46 lines
895 B
C++
#pragma once
|
|
|
|
#include <windows.h>
|
|
|
|
namespace XCEngine::UI::Editor::Host {
|
|
|
|
class HostRuntimeState {
|
|
public:
|
|
void Reset() {
|
|
m_windowDpi = 96u;
|
|
m_inInteractiveResize = false;
|
|
}
|
|
|
|
void SetWindowDpi(UINT dpi) {
|
|
m_windowDpi = dpi == 0u ? 96u : dpi;
|
|
}
|
|
|
|
UINT GetWindowDpi() const {
|
|
return m_windowDpi;
|
|
}
|
|
|
|
float GetDpiScale(float baseDpiScale) const {
|
|
return baseDpiScale > 0.0f
|
|
? static_cast<float>(m_windowDpi) / baseDpiScale
|
|
: 1.0f;
|
|
}
|
|
|
|
void BeginInteractiveResize() {
|
|
m_inInteractiveResize = true;
|
|
}
|
|
|
|
void EndInteractiveResize() {
|
|
m_inInteractiveResize = false;
|
|
}
|
|
|
|
bool IsInteractiveResize() const {
|
|
return m_inInteractiveResize;
|
|
}
|
|
|
|
private:
|
|
UINT m_windowDpi = 96u;
|
|
bool m_inInteractiveResize = false;
|
|
};
|
|
|
|
} // namespace XCEngine::UI::Editor::Host
|