summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android/qandroidplatformscreen.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/android/qandroidplatformscreen.h')
-rw-r--r--src/plugins/platforms/android/qandroidplatformscreen.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformscreen.h b/src/plugins/platforms/android/qandroidplatformscreen.h
index 5dc158e351..e73ea31a86 100644
--- a/src/plugins/platforms/android/qandroidplatformscreen.h
+++ b/src/plugins/platforms/android/qandroidplatformscreen.h
@@ -69,6 +69,12 @@ public:
QImage::Format format() const override { return m_format; }
QSizeF physicalSize() const override { return m_physicalSize; }
+ QString name() const override { return m_name; }
+ QVector<Mode> modes() const override { return m_modes; }
+ int currentMode() const override { return m_currentMode; }
+ int preferredMode() const override { return m_currentMode; }
+ qreal refreshRate() const override { return m_refreshRate; }
+
inline QWindow *topWindow() const;
QWindow *topLevelAt(const QPoint & p) const override;
@@ -87,6 +93,10 @@ public slots:
void setPhysicalSize(const QSize &size);
void setAvailableGeometry(const QRect &rect);
void setSize(const QSize &size);
+ void setSizeParameters(const QSize &physicalSize, const QSize &size,
+ const QRect &availableGeometry);
+ void setRefreshRate(qreal refreshRate);
+ void setOrientation(Qt::ScreenOrientation orientation);
protected:
bool event(QEvent *event) override;
@@ -100,18 +110,24 @@ protected:
int m_depth;
QImage::Format m_format;
QSizeF m_physicalSize;
+ qreal m_refreshRate;
+ QString m_name;
+ QVector<Mode> m_modes;
+ int m_currentMode = 0;
private:
QDpi logicalDpi() const override;
QDpi logicalBaseDpi() const override;
Qt::ScreenOrientation orientation() const override;
Qt::ScreenOrientation nativeOrientation() const override;
+ QPixmap grabWindow(WId window, int x, int y, int width, int height) const override;
void surfaceChanged(JNIEnv *env, jobject surface, int w, int h) override;
void releaseSurface();
void applicationStateChanged(Qt::ApplicationState);
+ QPixmap doScreenShot(QRect grabRect = QRect());
private slots:
- void doRedraw();
+ void doRedraw(QImage *screenGrabImage = nullptr);
private:
int m_id = -1;
@@ -119,6 +135,10 @@ private:
ANativeWindow* m_nativeSurface = nullptr;
QWaitCondition m_surfaceWaitCondition;
QSize m_size;
+
+ QImage m_lastScreenshot;
+ QImage::Format m_pixelFormat = QImage::Format_RGBA8888_Premultiplied;
+ bool m_repaintOccurred = false;
};
QT_END_NAMESPACE