Open daschuer opened 12 months ago
AFAIK that's from the fact that Apple just straight up killed OpenGL on newer MacOS versions. The only workaround would be to make use of a translation layer (similar to ANGLE) or reimplemented our waveforms based on Qt's QRhi infrastructure. The latter is more work but the only solution that's viable in the long run. Unfortunately QRhi is still private so unless we want the maintenance nightmare of using a private API, we should implement the waveforms using the primitives offered by QtQuick (QSG*
-classes).
Apple deprecated OpenGL in 2018. Apple supports only Metal and WebGPU nowadays.
Seems about right, 10.14 got released in Q3 of 2018...
While deprecated, I doesn't look like Apple is actually removing OpenGL altogether. If they do, I don't think using a translation layer (or even porting) to Metal will be a big deal since we are using only pretty basic OpenGL.
But I agree that in the long run moving to the Qt scene graph (QSG*) classes is the way to go, hand in hand with moving to QML.
BTW, any idea how QRhi relates to https://doc.qt.io/qt-6/qtshadertools-qsb.html ?
QRhi is the internal abstraction for the native graphic apis. QSB is a tool that builds shader IR for all the native platforms at build time. We can then use the QSB generated files in the basic QSG*
classes to implement cross-platform Qt Quick Items/Widgets using fragment and vertex shaders (no geometry shaders unfortunately). QRhi uses the qsb generated files and selects the appropriate shaders from those at runtime depending on the current platform IIUC. Does that make sense and answer your question?
Technically QRhi is still exported by Qt, but its undocumented and not stable so even though we could use it directly, I don't think we should. But it would still be better than writing native graphics code.
Feature Description
We see the following warnings in our CI: