abcg::Application::runnow takes by value a unique pointer toabcg::OpenGLWindow. Sincestd::unique_ptrcannot be copied, the caller must either usestd::moveor pass the pointer as an rvalue. This makes clear the intent of transferring ownership of the pointer, which was not explicit in the previous version that takes an lvalue reference.- Support for running multiple windows has been dropped. Multiple windows weren't working properly on Emscripten builds and aren't used in the course.
abcg::opengl::loadCubemapnow transforms the cube map textures to a right-handed coordinate system by default. A small loading overhead is incurred because some of the bitmaps are flipped vertically and horizontally. This behavior can be disabled by setting the (new) parameterrightHandedSystemtofalse.
- Fixed flickering effect when
glClearis not called for each frame. For this fix to work,abcg::OpenGLSettings::preserveWebGLDrawingBuffermust betrueeven when building for desktop.
abcg::Exception::OpenGLnow generates a string describing all OpenGL error messages returned byglGetErrorwhen there are multiple errors.- All OpenGL functions from OpenGL ES 2.0 and ES 3.0 can now be qualified with the
abcgnamespace (e.g.abcg::glActiveTexture(0)) for automatic error handling in debug builds. This is an alternative to theGL_CHECKmacro used in many engines to check for errors before and after each GL call. - Updated external libraries (Dear ImGui v1.84; cppitertools v2.1; {fmt} 8.0.1).
- Initial release. Used during the first academic term of 2021.