/* Системный курсор накладывается до масштабирования. Создаётся в GUI: X11 draw остаётся в GUI, * Windows draw работает в image worker через сохранённый HMONITOR, без обращения к QScreen. * Положение, hotspot и bitmap используют физические пиксели выбранного монитора. */ #pragma once #include #include #include #ifndef Q_OS_WIN #include struct _XDisplay; #endif class StreamScreenCursor { public: explicit StreamScreenCursor(QScreen* screen); ~StreamScreenCursor(); bool draw(QImage& frame); private: #ifdef Q_OS_WIN void* m_monitor = nullptr; QString m_screenName; #else QPointer m_screen; QWindow m_origin; struct _XDisplay* m_display = nullptr; #endif bool m_ready = false, m_reported = false; };