If a window is not hidden but occluded, e.g. by another window or the
window is on another screen/desktop that is currently not shown,
_glfwPlatformWindowVisible() returns 1 although the window is physically
not visible. This commit fixes this issue by treating occluded windows
as hidden, i.e. non visible.
Usage example:
When the render loop is limited by v-sync, glfwSwapBuffers() does not
block on OS X when AppNap is enabled and the window is occluded.
Therefore the application starts to burn CPU cycles althoug nothing is
displayed. With the fix in this commit the application could check if
the window is visible using glfwGetWindowAttrib(window, GLFW_VISIBLE)
and if the window is hidden (or occluded) it could pause the render
loop.
This is a workaround for issue #680
As noted in the documentation for NSDistributedNotificationCenter,
(under the Discussion heading) before an observer is deallocated a call
should be made to removeObserver: in order to ensure that the listener
is correctly removed from all observation pools.
Fixes#817.
Closes#826.
Cleanup of 8bdb105897.
Add build macro to configuration header and documentation. Add
corresponding CMake option. Add change log entry and credit. Add
loader static library to link dependencies and add detection to
FindVulkan.cmake.
This allows clients to link GLFW with a staticly-built loader library.
This is useful in hermetic build systems that build the Khronos loader
from source, rather than depending on the LunarG SDK binaries.
Closes#820.
Add separate strings for each client API to make it easier to grep.
Remove 'client' from fallback error messages as API-related error tokens
are used for non-client APIs as well.