forked from github_mirror/framelesshelper
Fix compilation on sdks lack "timeapi.h"
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
This commit is contained in:
parent
e3adb917a6
commit
7ddde978e8
|
@ -380,11 +380,11 @@ bool FramelessHelperWin::nativeEventFilter(const QByteArray &eventType, void *me
|
||||||
if (Utilities::isDwmCompositionAvailable()) {
|
if (Utilities::isDwmCompositionAvailable()) {
|
||||||
QSystemLibrary winmmLib(QStringLiteral("winmm"));
|
QSystemLibrary winmmLib(QStringLiteral("winmm"));
|
||||||
static const auto ptimeGetDevCaps =
|
static const auto ptimeGetDevCaps =
|
||||||
reinterpret_cast<MMRESULT(WINAPI *)(LPTIMECAPS, UINT)>(winmmLib.resolve("timeGetDevCaps"));
|
reinterpret_cast</*MMRESULT*/UINT(WINAPI *)(flh_LPTIMECAPS, UINT)>(winmmLib.resolve("timeGetDevCaps"));
|
||||||
static const auto ptimeBeginPeriod =
|
static const auto ptimeBeginPeriod =
|
||||||
reinterpret_cast<MMRESULT(WINAPI *)(UINT)>(winmmLib.resolve("timeBeginPeriod"));
|
reinterpret_cast</*MMRESULT*/UINT(WINAPI *)(UINT)>(winmmLib.resolve("timeBeginPeriod"));
|
||||||
static const auto ptimeEndPeriod =
|
static const auto ptimeEndPeriod =
|
||||||
reinterpret_cast<MMRESULT(WINAPI *)(UINT)>(winmmLib.resolve("timeEndPeriod"));
|
reinterpret_cast</*MMRESULT*/UINT(WINAPI *)(UINT)>(winmmLib.resolve("timeEndPeriod"));
|
||||||
static const auto pDwmGetCompositionTimingInfo =
|
static const auto pDwmGetCompositionTimingInfo =
|
||||||
reinterpret_cast<HRESULT(WINAPI *)(HWND, DWM_TIMING_INFO *)>(QSystemLibrary::resolve(QStringLiteral("dwmapi"), "DwmGetCompositionTimingInfo"));
|
reinterpret_cast<HRESULT(WINAPI *)(HWND, DWM_TIMING_INFO *)>(QSystemLibrary::resolve(QStringLiteral("dwmapi"), "DwmGetCompositionTimingInfo"));
|
||||||
if (ptimeGetDevCaps && ptimeBeginPeriod && ptimeEndPeriod && pDwmGetCompositionTimingInfo) {
|
if (ptimeGetDevCaps && ptimeBeginPeriod && ptimeEndPeriod && pDwmGetCompositionTimingInfo) {
|
||||||
|
@ -394,13 +394,13 @@ bool FramelessHelperWin::nativeEventFilter(const QByteArray &eventType, void *me
|
||||||
qWarning() << Utilities::getSystemErrorMessage(QStringLiteral("QueryPerformanceFrequency"));
|
qWarning() << Utilities::getSystemErrorMessage(QStringLiteral("QueryPerformanceFrequency"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
TIMECAPS tc = {};
|
flh_TIMECAPS tc = {};
|
||||||
if (ptimeGetDevCaps(&tc, sizeof(tc)) != MMSYSERR_NOERROR) {
|
if (ptimeGetDevCaps(&tc, sizeof(tc)) != /*MMSYSERR_NOERROR*/0) {
|
||||||
qWarning() << "timeGetDevCaps() failed.";
|
qWarning() << "timeGetDevCaps() failed.";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
const UINT ms_granularity = tc.wPeriodMin;
|
const UINT ms_granularity = tc.wPeriodMin;
|
||||||
if (ptimeBeginPeriod(ms_granularity) != TIMERR_NOERROR) {
|
if (ptimeBeginPeriod(ms_granularity) != /*TIMERR_NOERROR*/0) {
|
||||||
qWarning() << "timeBeginPeriod() failed.";
|
qWarning() << "timeBeginPeriod() failed.";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -441,7 +441,7 @@ bool FramelessHelperWin::nativeEventFilter(const QByteArray &eventType, void *me
|
||||||
Q_ASSERT(m < period);
|
Q_ASSERT(m < period);
|
||||||
const qreal m_ms = 1000.0 * static_cast<qreal>(m) / static_cast<qreal>(freq.QuadPart);
|
const qreal m_ms = 1000.0 * static_cast<qreal>(m) / static_cast<qreal>(freq.QuadPart);
|
||||||
Sleep(static_cast<DWORD>(qRound(m_ms)));
|
Sleep(static_cast<DWORD>(qRound(m_ms)));
|
||||||
if (ptimeEndPeriod(ms_granularity) != TIMERR_NOERROR) {
|
if (ptimeEndPeriod(ms_granularity) != /*TIMERR_NOERROR*/0) {
|
||||||
qWarning() << "timeEndPeriod() failed.";
|
qWarning() << "timeEndPeriod() failed.";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,6 +114,16 @@
|
||||||
#define IsMaximized(window) (IsZoomed(window) != FALSE)
|
#define IsMaximized(window) (IsZoomed(window) != FALSE)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
struct flh_timecaps_tag
|
||||||
|
{
|
||||||
|
UINT wPeriodMin; // minimum period supported
|
||||||
|
UINT wPeriodMax; // maximum period supported
|
||||||
|
};
|
||||||
|
using flh_TIMECAPS = flh_timecaps_tag;
|
||||||
|
using flh_PTIMECAPS = flh_timecaps_tag *;
|
||||||
|
using flh_NPTIMECAPS = flh_timecaps_tag * NEAR;
|
||||||
|
using flh_LPTIMECAPS = flh_timecaps_tag * FAR;
|
||||||
|
|
||||||
[[maybe_unused]] static constexpr UINT kAutoHideTaskbarThickness = 2; // The thickness of an auto-hide taskbar in pixels
|
[[maybe_unused]] static constexpr UINT kAutoHideTaskbarThickness = 2; // The thickness of an auto-hide taskbar in pixels
|
||||||
|
|
||||||
[[maybe_unused]] static constexpr char kDwmRegistryKey[] = R"(Software\Microsoft\Windows\DWM)";
|
[[maybe_unused]] static constexpr char kDwmRegistryKey[] = R"(Software\Microsoft\Windows\DWM)";
|
||||||
|
|
Loading…
Reference in New Issue