diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/platforms/ios/qioscontext.h | 4 | ||||
-rw-r--r-- | src/plugins/platforms/ios/qioscontext.mm | 9 | ||||
-rw-r--r-- | src/plugins/platforms/ios/qioswindow.h | 4 | ||||
-rw-r--r-- | src/plugins/platforms/ios/qioswindow.mm | 4 |
4 files changed, 13 insertions, 8 deletions
diff --git a/src/plugins/platforms/ios/qioscontext.h b/src/plugins/platforms/ios/qioscontext.h index 961661c5d3..c48a0251a9 100644 --- a/src/plugins/platforms/ios/qioscontext.h +++ b/src/plugins/platforms/ios/qioscontext.h @@ -48,6 +48,8 @@ QT_BEGIN_NAMESPACE +class QIOSWindow; + class QIOSContext : public QObject, public QPlatformOpenGLContext { Q_OBJECT @@ -87,7 +89,7 @@ private: static void deleteBuffers(const FramebufferObject &framebufferObject); - mutable QHash<QWindow *, FramebufferObject> m_framebufferObjects; + mutable QHash<QIOSWindow *, FramebufferObject> m_framebufferObjects; }; QT_END_NAMESPACE diff --git a/src/plugins/platforms/ios/qioscontext.mm b/src/plugins/platforms/ios/qioscontext.mm index d7b9314ae0..7310d2904f 100644 --- a/src/plugins/platforms/ios/qioscontext.mm +++ b/src/plugins/platforms/ios/qioscontext.mm @@ -113,7 +113,7 @@ void QIOSContext::swapBuffers(QPlatformSurface *surface) { Q_ASSERT(surface && surface->surface()->surfaceType() == QSurface::OpenGLSurface); Q_ASSERT(surface->surface()->surfaceClass() == QSurface::Window); - QWindow *window = static_cast<QWindow *>(surface->surface()); + QIOSWindow *window = static_cast<QIOSWindow *>(surface); Q_ASSERT(m_framebufferObjects.contains(window)); [EAGLContext setCurrentContext:m_eaglContext]; @@ -124,7 +124,7 @@ void QIOSContext::swapBuffers(QPlatformSurface *surface) GLuint QIOSContext::defaultFramebufferObject(QPlatformSurface *surface) const { Q_ASSERT(surface && surface->surface()->surfaceClass() == QSurface::Window); - QWindow *window = static_cast<QWindow *>(surface->surface()); + QIOSWindow *window = static_cast<QIOSWindow *>(surface); FramebufferObject &framebufferObject = m_framebufferObjects[window]; @@ -155,8 +155,7 @@ GLuint QIOSContext::defaultFramebufferObject(QPlatformSurface *surface) const } // Ensure that the FBO's buffers match the size of the layer - QIOSWindow *platformWindow = static_cast<QIOSWindow *>(surface); - UIView *view = reinterpret_cast<UIView *>(platformWindow->winId()); + UIView *view = reinterpret_cast<UIView *>(window->winId()); CAEAGLLayer *layer = static_cast<CAEAGLLayer *>(view.layer); if (framebufferObject.renderbufferWidth != (layer.frame.size.width * layer.contentsScale) || framebufferObject.renderbufferHeight != (layer.frame.size.height * layer.contentsScale)) { @@ -191,7 +190,7 @@ GLuint QIOSContext::defaultFramebufferObject(QPlatformSurface *surface) const void QIOSContext::windowDestroyed(QObject *object) { - QWindow *window = static_cast<QWindow *>(object); + QIOSWindow *window = static_cast<QIOSWindow *>(object); if (m_framebufferObjects.contains(window)) { EAGLContext *originalContext = [EAGLContext currentContext]; [EAGLContext setCurrentContext:m_eaglContext]; diff --git a/src/plugins/platforms/ios/qioswindow.h b/src/plugins/platforms/ios/qioswindow.h index 9ab9a3a45e..5ded589205 100644 --- a/src/plugins/platforms/ios/qioswindow.h +++ b/src/plugins/platforms/ios/qioswindow.h @@ -58,8 +58,10 @@ QT_BEGIN_NAMESPACE @class QUIView; -class QIOSWindow : public QPlatformWindow +class QIOSWindow : public QObject, public QPlatformWindow { + Q_OBJECT + public: explicit QIOSWindow(QWindow *window); ~QIOSWindow(); diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm index 23e6ad82b5..215f590595 100644 --- a/src/plugins/platforms/ios/qioswindow.mm +++ b/src/plugins/platforms/ios/qioswindow.mm @@ -342,7 +342,7 @@ QIOSWindow::QIOSWindow(QWindow *window) , m_normalGeometry(QPlatformWindow::geometry()) , m_windowLevel(0) { - setParent(parent()); + setParent(QPlatformWindow::parent()); setWindowState(window->windowState()); } @@ -527,4 +527,6 @@ qreal QIOSWindow::devicePixelRatio() const return m_view.contentScaleFactor; } +#include "moc_qioswindow.cpp" + QT_END_NAMESPACE |