I’ve been taking it easy for the past couple of weeks, but last weekend I did manage to merge the recent OpenGL changes to the master branch. Build 2353 now includes this work. Please let me know if something appears broken!
There was a slight problem with the autobuilder, so the build change log is empty. GitHub has your back, though.
Here’s a rundown of the most important changes:
- All OpenGL use now happens via OpenGL 3.3 Core Profile. If you go to the Doomsday About box, the GL info popup should indicate that the OpenGL 3 or 4 driver is in use. This means that all reliance on the old OpenGL 2 fixed-function pipeline is gone, and rendering is done via shaders. However, the map renderer itself was not changed yet, so it is still unaware that shaders are available. In practice, everything should be working as before, however with a slightly slower performance. The additional overhead comes from the DGL wrapper that provides an API compatible with the old fixed-function drawing code. The use of this wrapper will be removed in Doomsday 2.2 and beyond, as the drawing code is revised to work in a more GPU-friendly way.
- There’s a new build option for selecting between OpenGL 3.3, OpenGL ES 3, and OpenGL ES 2. Only the first two of these have been implemented, and some of the shaders don’t yet work under GLES yet. As work on the mobile version progresses in the future, the GLES variants will be improved as needed. For now, though, desktop OpenGL remains the priority.
In addition to graphics, I’ve also updated a few of the 3rd-party libraries:
- The Windows build uses the newly released Qt 5.9.
- The 64-bit Windows build is compiled with MSVC 2017 (with improved C++11 support).
- The obsolete FMOD Ex has been replaced with the latest FMOD Studio Low-Level Programmer API. The new API is roughly equivalent in functionality as far as Doomsday is concerned.