![]() |
Qt 6.x
The Qt SDK
|
#include <qandroidplatformopenglwindow.h>
Public Member Functions | |
QAndroidPlatformOpenGLWindow (QWindow *window, EGLDisplay display) | |
~QAndroidPlatformOpenGLWindow () | |
void | setGeometry (const QRect &rect) override |
This function is called by Qt whenever a window is moved or resized using the QWindow API. | |
EGLSurface | eglSurface (EGLConfig config) |
QSurfaceFormat | format () const override |
Returns the actual surface format of the window. | |
bool | checkNativeSurface (EGLConfig config) |
void | applicationStateChanged (Qt::ApplicationState) override |
void | repaint (const QRegion ®ion) override |
![]() | |
QAndroidPlatformWindow (QWindow *window) | |
void | lower () override |
Reimplement to be able to let Qt lower windows to the bottom of the desktop. | |
void | raise () override |
Reimplement to be able to let Qt raise windows to the top of the desktop. | |
void | setVisible (bool visible) override |
Reimplemented in subclasses to show the surface if visible is true , and hide it if visible is false . | |
void | setWindowState (Qt::WindowStates state) override |
Requests setting the window state of this surface to type. | |
void | setWindowFlags (Qt::WindowFlags flags) override |
Requests setting the window flags of this surface to flags. | |
Qt::WindowFlags | windowFlags () const |
void | setParent (const QPlatformWindow *window) override |
This function is called to enable native child window in QPA. | |
WId | winId () const override |
Reimplement in subclasses to return a handle to the native window. | |
bool | setMouseGrabEnabled (bool grab) override |
bool | setKeyboardGrabEnabled (bool grab) override |
QAndroidPlatformScreen * | platformScreen () const |
QMargins | safeAreaMargins () const override |
The safe area margins of a window represent the area that is safe to place content within, without intersecting areas of the screen where system UI is placed, or where a screen bezel may cover the content. | |
void | propagateSizeHints () override |
Reimplement to propagate the size hints of the QWindow. | |
void | requestActivateWindow () override |
Reimplement to let Qt be able to request activation/focus for a window. | |
void | updateSystemUiVisibility () |
bool | isRaster () const |
bool | isExposed () const override |
Returns if this window is exposed in the windowing system. | |
virtual void | applicationStateChanged (Qt::ApplicationState) |
void | setBackingStore (QAndroidPlatformBackingStore *store) |
QAndroidPlatformBackingStore * | backingStore () const |
virtual void | repaint (const QRegion &) |
![]() | |
QPlatformWindow (QWindow *window) | |
Constructs a platform window with the given top level window. | |
~QPlatformWindow () override | |
Virtual destructor does not delete its top level window. | |
virtual void | initialize () |
Called as part of QWindow::create(), after constructing the window. | |
QWindow * | window () const |
Returns the window which belongs to the QPlatformWindow. | |
QPlatformWindow * | parent () const |
Returns the parent platform window (or \nullptr if orphan). | |
QPlatformScreen * | screen () const override |
Returns the platform screen handle corresponding to this platform window, or null if the window is not associated with a screen. | |
virtual QSurfaceFormat | format () const override |
Returns the actual surface format of the window. | |
virtual void | setGeometry (const QRect &rect) |
This function is called by Qt whenever a window is moved or resized using the QWindow API. | |
virtual QRect | geometry () const |
Returns the current geometry of a window. | |
virtual QRect | normalGeometry () const |
Returns the geometry of a window in 'normal' state (neither maximized, fullscreen nor minimized) for saving geometries to application settings. | |
virtual QMargins | frameMargins () const |
virtual QMargins | safeAreaMargins () const |
The safe area margins of a window represent the area that is safe to place content within, without intersecting areas of the screen where system UI is placed, or where a screen bezel may cover the content. | |
virtual void | setVisible (bool visible) |
Reimplemented in subclasses to show the surface if visible is true , and hide it if visible is false . | |
virtual void | setWindowFlags (Qt::WindowFlags flags) |
Requests setting the window flags of this surface to flags. | |
virtual void | setWindowState (Qt::WindowStates state) |
Requests setting the window state of this surface to type. | |
virtual WId | winId () const |
Reimplement in subclasses to return a handle to the native window. | |
virtual void | setParent (const QPlatformWindow *window) |
This function is called to enable native child window in QPA. | |
virtual void | setWindowTitle (const QString &title) |
Reimplement to set the window title to title. | |
virtual void | setWindowFilePath (const QString &title) |
Reimplement to set the window file path to filePath. | |
virtual void | setWindowIcon (const QIcon &icon) |
Reimplement to set the window icon to icon. | |
virtual bool | close () |
Reimplement to let the platform handle non-spontaneous window close. | |
virtual void | raise () |
Reimplement to be able to let Qt raise windows to the top of the desktop. | |
virtual void | lower () |
Reimplement to be able to let Qt lower windows to the bottom of the desktop. | |
virtual bool | isExposed () const |
Returns if this window is exposed in the windowing system. | |
virtual bool | isActive () const |
Returns true if the window should appear active from a style perspective. | |
virtual bool | isAncestorOf (const QPlatformWindow *child) const |
Returns true if the window is an ancestor of the given child. | |
virtual bool | isEmbedded () const |
Returns true if the window is a child of a non-Qt window. | |
virtual bool | isForeignWindow () const |
virtual QPoint | mapToGlobal (const QPoint &pos) const |
Translates the window coordinate pos to global screen coordinates using native methods. | |
QPointF | mapToGlobalF (const QPointF &pos) const |
virtual QPoint | mapFromGlobal (const QPoint &pos) const |
Translates the global screen coordinate pos to window coordinates using native methods. | |
QPointF | mapFromGlobalF (const QPointF &pos) const |
virtual void | propagateSizeHints () |
Reimplement to propagate the size hints of the QWindow. | |
virtual void | setOpacity (qreal level) |
Reimplement to be able to let Qt set the opacity level of a window. | |
virtual void | setMask (const QRegion ®ion) |
Reimplement to be able to let Qt set the mask of a window. | |
virtual void | requestActivateWindow () |
Reimplement to let Qt be able to request activation/focus for a window. | |
virtual void | handleContentOrientationChange (Qt::ScreenOrientation orientation) |
Handle changes to the orientation of the platform window's contents. | |
virtual qreal | devicePixelRatio () const |
Reimplement this function in subclass to return the device pixel ratio for the window. | |
virtual bool | setKeyboardGrabEnabled (bool grab) |
virtual bool | setMouseGrabEnabled (bool grab) |
virtual bool | setWindowModified (bool modified) |
Reimplement to be able to let Qt indicate that the window has been modified. | |
virtual bool | windowEvent (QEvent *event) |
Reimplement this method to be able to do any platform specific event handling. | |
virtual bool | startSystemResize (Qt::Edges edges) |
Reimplement this method to start a system resize operation if the system supports it and return true to indicate success. | |
virtual bool | startSystemMove () |
Reimplement this method to start a system move operation if the system supports it and return true to indicate success. | |
virtual void | setFrameStrutEventsEnabled (bool enabled) |
Reimplement this method to set whether frame strut events should be sent to enabled. | |
virtual bool | frameStrutEventsEnabled () const |
Reimplement this method to return whether frame strut events are enabled. | |
virtual void | setAlertState (bool enabled) |
Reimplement this method to set whether the window demands attention (for example, by flashing the taskbar icon) depending on enabled. | |
virtual bool | isAlertState () const |
Reimplement this method return whether the window is in an alert state. | |
virtual void | invalidateSurface () |
Invalidates the window's surface by releasing its surface buffers. | |
virtual void | requestUpdate () |
Requests an QEvent::UpdateRequest event. | |
bool | hasPendingUpdateRequest () const |
Returns true if the window has a pending update request. | |
virtual void | deliverUpdateRequest () |
Delivers an QEvent::UpdateRequest event to the window. | |
QSize | windowMinimumSize () const |
Returns the QWindow minimum size. | |
QSize | windowMaximumSize () const |
Returns the QWindow maximum size. | |
QSize | windowBaseSize () const |
Returns the QWindow base size. | |
QSize | windowSizeIncrement () const |
Returns the QWindow size increment. | |
QRect | windowGeometry () const |
Returns the QWindow geometry. | |
QRect | windowFrameGeometry () const |
Returns the QWindow frame geometry. | |
QRectF | windowClosestAcceptableGeometry (const QRectF &nativeRect) const |
![]() | |
virtual | ~QPlatformSurface () |
virtual QSurfaceFormat | format () const =0 |
QSurface * | surface () const |
virtual QPlatformScreen * | screen () const =0 |
![]() | |
virtual void | surfaceChanged (JNIEnv *jniEnv, jobject surface, int w, int h)=0 |
void | lockSurface () |
void | unlockSurface () |
Protected Member Functions | |
void | surfaceChanged (JNIEnv *jniEnv, jobject surface, int w, int h) override |
void | createEgl (EGLConfig config) |
void | clearEgl () |
![]() | |
void | setGeometry (const QRect &rect) override |
This function is called by Qt whenever a window is moved or resized using the QWindow API. | |
![]() | |
QPlatformScreen * | screenForGeometry (const QRect &newGeometry) const |
Helper function for finding the new screen for newGeometry in response to a geometry changed event. | |
Additional Inherited Members | |
![]() | |
static QRect | initialGeometry (const QWindow *w, const QRect &initialGeometry, int defaultWidth, int defaultHeight, const QScreen **resultingScreenReturn=nullptr) |
Helper function to get initial geometry on windowing systems which do not do smart positioning and also do not provide a means of centering a transient window w.r.t. | |
static QRectF | closestAcceptableGeometry (const QWindow *w, const QRectF &nativeRect) |
Returns the closest acceptable geometry for a given geometry before a resize/move event for platforms that support it, for example to implement heightForWidth(). | |
![]() | |
static bool | isRasterSurface (QSurface *surface) |
![]() | |
static QString | formatWindowTitle (const QString &title, const QString &separator) |
Call this method to put together a window title composed of title separator the application display name. | |
static QSize | constrainWindowSize (const QSize &size) |
Returns a size with both dimensions bounded to [0, QWINDOWSIZE_MAX]. | |
![]() | |
Qt::WindowFlags | m_windowFlags |
Qt::WindowStates | m_windowState |
WId | m_windowId |
QAndroidPlatformBackingStore * | m_backingStore = nullptr |
![]() | |
QScopedPointer< QPlatformWindowPrivate > | d_ptr |
![]() | |
QMutex | m_surfaceMutex |
Definition at line 19 of file qandroidplatformopenglwindow.h.
|
explicit |
Definition at line 24 of file qandroidplatformopenglwindow.cpp.
QAndroidPlatformOpenGLWindow::~QAndroidPlatformOpenGLWindow | ( | ) |
Definition at line 29 of file qandroidplatformopenglwindow.cpp.
References clearEgl(), QtAndroid::destroySurface(), AndroidSurfaceClient::lockSurface(), AndroidSurfaceClient::unlockSurface(), and QWaitCondition::wakeOne().
|
overridevirtual |
Reimplemented from QAndroidPlatformWindow.
Definition at line 125 of file qandroidplatformopenglwindow.cpp.
References Qt::ApplicationHidden, QAndroidPlatformWindow::applicationStateChanged(), clearEgl(), QtAndroid::destroySurface(), AndroidSurfaceClient::lockSurface(), state, and AndroidSurfaceClient::unlockSurface().
bool QAndroidPlatformOpenGLWindow::checkNativeSurface | ( | EGLConfig | config | ) |
Definition at line 110 of file qandroidplatformopenglwindow.cpp.
References QPlatformScreen::availableGeometry(), createEgl(), QPlatformWindow::geometry(), QWindowSystemInterface::handleExposeEvent(), QRect::height(), lock, AndroidSurfaceClient::m_surfaceMutex, QPlatformWindow::screen(), QRect::width(), and QPlatformWindow::window().
Referenced by eglSurface(), and QAndroidPlatformOpenGLContext::swapBuffers().
|
protected |
Definition at line 162 of file qandroidplatformopenglwindow.cpp.
Referenced by ~QAndroidPlatformOpenGLWindow(), applicationStateChanged(), and createEgl().
|
protected |
Definition at line 139 of file qandroidplatformopenglwindow.cpp.
References clearEgl(), error, q_glFormatFromConfig(), Q_UNLIKELY, qFatal, and QPlatformWindow::window().
Referenced by checkNativeSurface().
EGLSurface QAndroidPlatformOpenGLWindow::eglSurface | ( | EGLConfig | config | ) |
Definition at line 85 of file qandroidplatformopenglwindow.cpp.
References AndroidDeadlockProtector::acquire(), QGuiApplication::applicationState(), Qt::ApplicationSuspended, checkNativeSurface(), QtAndroid::createSurface(), QPlatformWindow::geometry(), lock, QMutex::lock(), AndroidSurfaceClient::m_surfaceMutex, QAndroidEventDispatcherStopper::stopped(), QMutex::unlock(), QWaitCondition::wait(), QPlatformWindow::window(), and Qt::WindowStaysOnTopHint.
|
overridevirtual |
Returns the actual surface format of the window.
Reimplemented from QPlatformWindow.
Definition at line 154 of file qandroidplatformopenglwindow.cpp.
References QPlatformWindow::window().
Reimplemented from QAndroidPlatformWindow.
Definition at line 39 of file qandroidplatformopenglwindow.cpp.
References QRegion::boundingRect(), QPlatformWindow::geometry(), QRect::height(), QRect::left(), QSurface::OpenGLSurface, QPlatformWindow::parent(), QAndroidPlatformWindow::platformScreen(), qt_window_private(), QSurface::RasterGLSurface, QAndroidPlatformScreen::setDirty(), QRect::top(), QRect::width(), and QPlatformWindow::window().
Referenced by setGeometry().
This function is called by Qt whenever a window is moved or resized using the QWindow API.
Unless you also override QPlatformWindow::geometry(), you need to call the baseclass implementation of this function in any override of QPlatformWindow::setGeometry(), as QWindow::geometry() is expected to report back the set geometry until a confirmation (or rejection) of the new geometry comes back from the window manager and is reported via QWindowSystemInterface::handleGeometryChange().
Window move/resizes can also be triggered spontaneously by the window manager, or as a response to an earlier requested move/resize via the Qt APIs. There is no need to call this function from the window manager callback, instead call QWindowSystemInterface::handleGeometryChange().
The position(x, y) part of the rect might be inclusive or exclusive of the window frame as returned by frameMargins(). You can detect this in the plugin by checking qt_window_private(window())->positionPolicy.
Reimplemented from QPlatformWindow.
Definition at line 62 of file qandroidplatformopenglwindow.cpp.
References QPlatformScreen::availableGeometry(), QPlatformWindow::geometry(), QWindowSystemInterface::handleExposeEvent(), QRect::height(), rect, repaint(), QPlatformWindow::screen(), QAndroidPlatformWindow::setGeometry(), QtAndroid::setSurfaceGeometry(), QRect::topLeft(), QRect::width(), and QPlatformWindow::window().
|
overrideprotectedvirtual |
Implements AndroidSurfaceClient.
Definition at line 176 of file qandroidplatformopenglwindow.cpp.
References QPlatformScreen::availableGeometry(), QPlatformWindow::geometry(), QWindowSystemInterface::handleExposeEvent(), QRect::height(), AndroidSurfaceClient::lockSurface(), Q_UNUSED, QPlatformWindow::screen(), QPlatformSurface::surface(), AndroidSurfaceClient::unlockSurface(), QWaitCondition::wakeOne(), QRect::width(), and QPlatformWindow::window().