Files
utun2/tools/chatgui/src/stream_screen_cursor.h
T

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;
};