diff --git a/doc/changelog.dox b/doc/changelog.dox index ef79ad9d2..5f0558dec 100644 --- a/doc/changelog.dox +++ b/doc/changelog.dox @@ -295,7 +295,8 @@ See also: @subsection changelog-latest-bugfixes Bug fixes - @ref GL::Context move constructor was not marked @cpp noexcept @ce by - accident + accident and it was also not really moving everything properly, especially + when delayed creation was done on the moved-to object - @ref GL::Renderer::MemoryBarrier::ShaderStorage had an incorrect value - Fixed assertions related to OpenGL driver workarounds when the proprietary AMDGPU PRO drivers are used on Linux diff --git a/src/Magnum/GL/Context.cpp b/src/Magnum/GL/Context.cpp index f1ad5c139..4e1239b05 100644 --- a/src/Magnum/GL/Context.cpp +++ b/src/Magnum/GL/Context.cpp @@ -738,7 +738,9 @@ Context::Context(NoCreateT, Utility::Arguments& args, Int argc, const char** arg } } -Context::Context(Context&& other) noexcept: _version{other._version}, +Context::Context(Context&& other) noexcept: + _functionLoader{other._functionLoader}, + _version{other._version}, #ifndef MAGNUM_TARGET_WEBGL _flags{other._flags}, #endif @@ -748,7 +750,10 @@ Context::Context(Context&& other) noexcept: _version{other._version}, _supportedExtensions{std::move(other._supportedExtensions)}, #endif _state{std::move(other._state)}, - _detectedDrivers{std::move(other._detectedDrivers)} + _detectedDrivers{std::move(other._detectedDrivers)}, + _driverWorkarounds{std::move(other._driverWorkarounds)}, + _disabledExtensions{std::move(other._disabledExtensions)}, + _internalFlags{other._internalFlags} { if(currentContext == &other) currentContext = this; }