[Development] Deprecation of Qt Canvas3D in 5.12

Pasi Keränen pasi.keranen at qt.io
Fri Aug 31 12:23:41 CEST 2018


We’ve maintained the Canvas3D (a WebGL like API for Qt Quick JavaScript) module with very minimal effort, but when we look at our future it seems clear we need to start supporting multiple low level APIs in Qt’s graphics stack and make our graphics stack less OpenGL centric. This was discussed in the Qt Contributor’s Summit 2018 and has been “in the air” for some time now among developers of Qt 3D, Qt 3D Studio and Qt Quick. Qt will of course still support OpenGL, but it’s not going to be the only API we need to support.

To this end Canvas3D with it’s WebGL API that maps nearly 1:1 to OpenGL is no longer a simple API to maintain going in to the future. It would require a major rewrite and a lot more involved design work to map it to new APIs (e.g. Vulcan, DX 12 or Metal).  Also there hasn’t been a big uptake in the customers or in the community to use this QML API or the ported three.js javascript 3D engine versions. All in all I think Qt’s graphics stack development effort would be better spent in improving Qt 3D, Qt 3D Studio and Qt Quick, adding enablers in these modules for supporting new graphics APIs etc.

So as creator and maintainer of Canvas3D I’d like to propose the deprecation of the module in Qt 5.12 and removal of the module and it’s APIs in a future Qt version. Instead of Qt Canvas3D I’d strongly recommend any existing developers on top of Canvas3D to move on top of Qt 3D or Qt 3D Studio APIs as those are being developed actively, offer much improved performance (especially on resource limited devices) and enable more modern GPU acceleration than is possible with Canvas3D.

Regards,
Pasi


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20180831/b75ead2c/attachment.html>


More information about the Development mailing list