Qt6 and Multimedia module - qt

As I can see in Qt6 no more Multimedia API. Am I right? Is it correct that in Qt6 for such simple task as playing sound I should look at third-party libraries now?

Qt6 is a big change so for compatibility reasons Qt does not provide this module, it will be provided in Qt 6.2 as this post: Add-on support in Qt 6.0 and beyond points out, so if you want to reproduce sounds you will have to use a third party library.
For Qt 6.2 we are planning to provide the following additional
libraries:
Qt Bluetooth
Qt Data Visualization
Qt Lottie Animation
Qt Multimedia
Qt NFC
Qt Positioning
Qt Quick Dialogs: Folder, Message Box
Qt Remote Objects
Qt Sensors
Qt SerialBus
Qt SerialPort
Qt WebChannel
Qt WebEngine
Qt WebSockets
Qt WebView
(emphasis mine)

Qt Multimedia is (again) part of Qt 6.2.
Note though that the module was undergoing a substantial rewrite. For more details, see e.g. https://www.qt.io/blog/qt-multimedia-in-qt-6 and the relevant porting documentation.

Related

Render Qml using Vulkan

I have a Qt application that draws using Open GL. At some point I'm using a QQuickWindow associated to a QQuickRenderControl to draw a QML scene into a texture to later compose it in the final image.
Now, I'm considering porting OpenGL to Vulkan and I'm not sure if it is possible to do the same with this QML layer.
Reading Qt docs I found that
QQuickWindow uses a scene graph on top of OpenGL to render.
Do you think it is possible to port it to Vulkan? Perhaps overriding QQuickWindow and QQuickRenderControl? I'm not a Qt expert so perhaps someone can give me a better insight of the problem.
As of June 2019 and Qt 5.13, Qt Quick 2 supports the following backends:
OpenGL 2.0
OpenGL ES 2.0
Direct3D 12 (support is still experimental)
OpenVG
Software rendering
However, only OpenGL and OpenGL ES are fully functional. For instance some effects (like particles) do not work with the other banckends.
For more information about how to select a backend and what are the limitations of each backend I suggest to read the documentation: https://doc.qt.io/qt-5/qtquick-visualcanvas-adaptations.html
Regarding Vulkan specifically, Qt has added support to it since Qt 5.10.
However, the support is still very limited and does not cover Qt Quick.
Change will come in the future; quoting an email from Qt development mailing list:
A very early preview of Qt Quick for Vulkan, Metal, and D3D11 may come already in Qt 5.14, then evolve in 5.15 and beyond, with 6.0 as its final destination.
So rendering Qt Quick with Vulkan should be possible when Qt 6 will be out. The planned release date for Qt 6 is currently November 2020. In the mean time technical previews might be available starting with Qt 5.14.
I would not be too optimistic for anything before Qt 6 as (1) it will just be technical previews and (2) as far as I know, current official Qt binaries are not linked with Vulkan at all and you need to build Qt from source if you want to use Vulkan.

Qt Mobility or Qt Location available for desktop use?

I have been trying to implement a mapviewer application in Qt as a desktop applicaation to work with multi-touch. I'd been having some trouble when I came across mention of Qt Mobility. Qt Mobility seems to be an old module that was used on mobile devices but doesn't appear to be supported by Nokia anymore. Although there is a active repository.
From what I can gather from various more recent forum posts such as this is if we want to use Qt Mobility's Location features we need to wait for it to be released in newer versions of Qt.
If the Qt Mobility api is still available through the repository is it possible to use this for desktop applications or is it strictly for mobile devices? I am interested in making use of the Qt Location classes to help create a map viewer client.
The QtMobility API while deprecated is still being updated and is still available and according to a thread on the Qt Developers it should work with Qt 4.8 (it was only officially supported up until Qt 4.7). According to the documentation it can be used for desktop applications, but they are mostly tier 2 platforms.
While Qt Location won't be ready until Qt 5.2 (expected at the end of November), I wouldn't expect it to drop support for platforms that are already supported in QtMobility.

Qt development and the necessity of OpenGL with QML pages

Is OpenGL mandatory in order to run a Qt application made of QML pages ?
Well, an implementation of OpenGL ES 2 is mandatory for Qt Quick 2, but that doesn't mean you need to use native OpenGL. On Windows you really should be using ANGLE, since on many Windows systems the installed OpenGL is either too old or broken.
Yes, with Qt Quick 2.0 OpenGL is a mandatory requirement.

How can i develop an OpenGL ES application with Qt?

I've been trying to make an application using Qt + OpenGL ES, so that it would run on devices but i can't seem to find any code on it, and the only few i could find wouldn't build. And when i searched for why it wasn't building people would say that i had to wait for a new version of Qt or something like that.
Anyone has ever done it? If so, there is a tutorial out there or something like that?
Examples for OpenGL ES 1.0 and OpenGL ES 2.0 are in examples/opengl/ of your Qt installation.
If you are targeting to Symbian, you need to wait Qt 4.7 and it's "experimental" OpenGL ES support for Symbian. With Maemo (N900), OpenGL ES 2.0 has been working since Qt 4.6.
Just as regular openGL - you just can't use a few features like pixel buffers
http://doc.qt.io/qt-5/windowsce-opengl.html
Qt OpenGL Nehe tutorials converted to the Qt environment
I haven't tried it yet, so hopefully will help.

Qt opengGL implementation

How Qt's Opengl widget works? Is it a software-only implementation or it relies on the configuration of the platform
It's a Qt widget that embeds an OpenGL context of the native platform - i.e. You're using the OpenGL libraries/setup on your platform - which doesn't have a lot to do with Qt

Resources