Cross-Plattform-Entwicklung: Qt 5.14 läutet den Abschied von OpenGL ein

Das Qt-Framework bekommt einen Renderer, der unabhängig von der Grafik-API arbeitet. Parallel zu Qt 5.14 ist Qt Creator 4.11 erschienen.

In Pocket speichern vorlesen Druckansicht 39 Kommentare lesen
Cross-Plattform-Entwicklung: Qt 5.14 läutet den Abschied von OpenGL ein
Lesezeit: 4 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Die Qt Company hat das Qt-Framework in Version 5.14 und gleichzeitig die Entwicklungsumgebung Qt Creator 4.11 veröffentlicht. Ersteres bringt einige Neuerungen in Qt Quick mit, allen voran eine eigene Abstraktionsschicht, um unabhängig von der Grafik-API zu rendern. Letzteres zielt auf die Neuzugänge Qt for MCUs und Qt for WebAssembly.

Das Qt Framework bereitet mit seinen Neuerungen vor allem den Wechsel auf die nächste Hauptversion vor. Der Qt Chief Maintainer und CTO der Qt Company Lars Knoll hat im August einen Ausblick auf Qt 6 veröffentlicht. Qt 5.14 wird jedoch nicht die letzte 5.x-Version sein, sondern für nächstes Jahr steht vor dem Sprung auf 6.x zunächst Qt 5.15 an, das als LTS-Release (Long-term Support) vorgesehen ist.

Die Zukunftspläne betreffen unter anderem den Grafik-Stack, der künftig unabhängig von OpenGL als 3D-Grafik-API arbeiten soll. Qt Quick bringt eine erste Preview des neuen Scene Graph Renderers mit. Er arbeitet mit einer zusätzlichen Abstraktionsschicht, die Qt Rendering Hardware Interface heißt. Damit lässt sich Vulkan, Metal oder Direct3D 11 statt OpenGL als Programmierschnittstelle verwenden. Die Umstellung ist in Qt 5.14 optional und soll in Qt 6 zum Standard für das Rendern werden.

Weitere Neuerungen in Qt Quick sind sind das Qt-Quick-Timeline-Modul zum Animieren von Propertys über eine Zeitleiste und Key Frames. Das Modul ist Bestandteil des Designwerkzeugs Qt Design Studio. Ein weiterer Neuzugang ist der WheelHandler, der Events vom Mausrad verarbeitet.

Die Integration von 3D-Inhalten in Qt Quick gehört ebenfalls zu den Plänen, die Knoll in seinem Ausblick auf Qt 6 genannt hat. Qt 5.14 bringt dazu Qt Quick 3D mit. Mit dem Modul können Entwickler und Designer 3D-Szenen über QML definieren und so 2D- und 3D-Darstellungen einheitlich entwickeln. Unter anderem können sie Qt-Quick-Inhalte als Textur für 3D-Objekte verwenden. Qt Quick 3D ist im aktuellen Release als Technology Preview gekennzeichnet und soll als vollwertiges Modul in Qt 5.15 enthalten sein.

Mit Qt Quick 3D lassen sich 3D-Inhalte einbinden.

(Bild: Qt Company)

Weitere nennenswerte Neuerungen in Qt 5.14 sind High-dpi-Support und das Auswerten von Farbrauminformationen zur korrekten Farbdarstellung auf entsprechend kalibrierten Displays. Texteditoren aus Qt Widgets oder Qt Quick können nun Markdown-Dateien lesen und schreiben. Android-Entwickler können neuerdings mehrere ABI-Builds (Android Binary Interface) für verschiedene Zielplattformen in ein AAB-Paket (Android App Bundle) packen.

Der ebenfalls frische Qt Creator 4.11 hat gleich zwei neue Zielplattformen im Visier. Die vor allem, aber nicht nur, auf die Entwicklung mit dem Qt-Klassenbibliothek ausgelegten IDE kennt neuerdings sowohl Qt for WebAssembly als auch Qt for MCUs als Ziel. Beide Plattformen sind im aktuellen Qt Creator jedoch noch als experimentell gekennzeichnet.

Die Qt Company hat vor Kurzem die allgemeine Verfügbarkeit von Qt for MCUs verkündet. Das Toolkit ist auf die Embedded-Entwicklung ausgelegt. Entwickler können damit Qt-Anwendungen für Mikroprozessoren wahlweise über ein Echtzeitbetriebssystem (Real-time Operating System, RTOS) oder im Bare-Metal-Betrieb ohne Betriebssystem erstellen.

Nennenswert ist zudem noch die erweiterte Anbindung des Language Server Protocol (LSP), die nun auch die zugehörige Extension für Syntaxhervorhebung kennt. Language-Server für Python sollen sich nun einfacher konfigurieren lassen, und im Zusammenspiel mit CMake ab Version 3.14 verwendet Qt Creator die dateibasierte API zum Konfigurieren von Projekten, die zuverlässiger arbeiten soll als der bisher verwendete Server-Mode.

Weitere Neuerungen der beiden Releases lassen sich den Blogbeiträgen zu Qt 5.14 beziehungsweise zu Qt Creator 4.11 entnehmen. (rme)