Details
Description
The following factory functions in QPlatformIntegration probably need to move to QPlatformScreen:
virtual QPixmapData *createPixmapData(QPixmapData::PixelType type) const = 0;
virtual QPlatformWindow *createPlatformWindow(QWindow *window) const = 0;
virtual QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const = 0;
virtual QPlatformGLContext *createPlatformGLContext(const QSurfaceFormat &format, QPlatformGLContext *share) const;
There needs to be a public screen API for creating contexts / windows / etc on the correct screen, and for querying which screen a context / window / etc is valid for. It should probably be possible to move a QWindow between screens as well. Moving a QGuiGLContext between screens might be trickier, as it could invalidate share groups or force having to recreate the context, so it might be better to force the user to create a new QGuiGLContext for that screen.
The public screen API needs to know and expose information about virtual desktops.