28 lines
945 B
C++
28 lines
945 B
C++
/* Системный курсор накладывается до масштабирования. Создаётся в GUI: X11 draw остаётся в GUI,
|
|
* Windows draw работает в image worker через сохранённый HMONITOR, без обращения к QScreen.
|
|
* Положение, hotspot и bitmap используют физические пиксели выбранного монитора. */
|
|
#pragma once
|
|
#include <QImage>
|
|
#include <QPointer>
|
|
#include <QScreen>
|
|
#ifndef Q_OS_WIN
|
|
#include <QWindow>
|
|
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<QScreen> m_screen;
|
|
QWindow m_origin;
|
|
struct _XDisplay* m_display = nullptr;
|
|
#endif
|
|
bool m_ready = false, m_reported = false;
|
|
};
|