[SOLVED]Qt and the vulkan API
Hi, i'm wondering, if Qt will implement the Vulkan API, and if i want to do it by my self, I only need to subclassing QPaintDevice, and QPaintEngine, to use it with a widget or a window??
I think it's a little bit early to talk about integrating Vulkan into Qt, considering that the specs are not even here (expected "later this year"), let alone any consumer ready driver.
Although I never did it myself I believe that subclassing these two is enough only if you're planning to use it with your custom window classes (not QWidget derived). To make the existing widgets use the new paint device and engine you would also have to create a custom platform plugin that would return your custom paint device implementation.
This, of course, would not work with any OpenGL and Qt Quick related classes and modules.
Thanks for the reply! of course integration should happen when API specs will be released, although i think that if Qt team make an implementation of Vulkan before others, more users will be interested in Qt. So for custom window only this two classes are needed, hope it will be easy to do it!
Well sure, but there's not gonna be any work on it done if there's no SDK or driver to use, so don't expect anything to start sooner. I doubt that it would be a priority for Digia looking at how much Qt is integrated with OpenGL right now and which platforms they support. Considering that OpenGL is not going away and is still going to be evolved (much in the same direction as Vulkan, Mantle or Metal are) I think it's just gonna be left to the users to implement that support if they need it. This is a similar situation to DirectX (not talking about the ANGLE wrapper). There's no QDirectXWidget as there would be little benefit from it for most people but you can implement it yourself given the window handle and flags Qt provides.
This is all of course just my speculation and opinion. You might get a different story from the actual Qt devs. Hit the mailing list or IRC channel if you're interested in that.