This adds basic support for MoltenVK, a Vulkan implementation on top of
Metal, on macOS 10.11 and later. It looks for MoltenVK in the process
via RTLD_DEFAULT symbol lookup if _GLFW_VULKAN_STATIC is disabled.
glfwCreateWindowSurface now creates and sets a CAMetalLayer for the
window content view, which is required for MoltenVK to function.
You must help CMake find MoltenVK for the Vulkan test to be built.
Fixes#870.
Error message is displayed during the startup because Cocoa view is set
as the first responder for window but this view isn't in this window
(actually it is not in any window at all).
Fixes#876.
Closes#883.
When disabling window aspect ratio, a system assert would trigger. The
correct way to disable window aspect ratio is to set a resize increment.
Closes#852.
Due to Wayland, shared code cannot rely on cursor positioning being
supported by the underlying platform.
This implicitly fixes#617 as it moves cursor centering into
_glfwPlatformSetCursorMode, thus separating it from the stale value of
_glfw.cursorWindow.
Fixes#617.
This adds the ability to switch between windowed and full screen modes,
move a full screen window between monitors and update its desired
resolution and refresh rate.
Fixes#43.
This removes the (undocumented) behavior where glfwShowWindow would
bring the window to front and set input focus. That function now
does what it says.
Added GLFW_INCLUDE_VULKAN. Added glfwVulkanSupported,
glfwGetRequiredInstanceExtensions, glfwGetInstanceProcAddress,
glfwGetPhysicalDevicePresentationSupport and glfwCreateWindowSurface.
Added port of LunarG SDK tri example.
Apple's documentation of [NSScreen screens] mentions that, "The
(screens) array should not be cached. Screens can be added, removed,
or dynamically reconfigured at any time." Because of this, we simply
obtain the screen from a displayID whenever we need it.
Fixes#492.
Closes#493.
Fixed incorrect error types. Added missing error string prefixes.
Removed some invalid or superfluous error emissions. Clarified some
error strings. Joined error string lines to aid grep. Replaced some
generic error strings with specific ones. Documentation work.
Fixes#450.
Changed the window states (focused, iconified and visible) to query the
system directly.
THIS IS A BREAKING CHANGE, although a fairly obscure one. It affects
applications that both care about telling actual key events from
synthetic ones, and are implemented in a non-self-synchronizing way, and
that poll the GLFW_FOCUSED window attribute instead of using the window
focus callback.
If you maintain one of these, please feel free to drop me an email and
I'll help any way I can to transition your application to 3.1.
Fixes#189.
Fixes#204.
Poor use of cursor rectangles broke Lion full screen and led to rect
reset loop. Cursor image is now updated only with the existing
enter/exit detection NSTrackingArea.
Fixes#339.
Fixes#375.
The menu bar for non-bundled applications did not become visible until
it had lost and regained focus. This is fixed (somehow) by letting the
NSApplication run loop start and stop.
Technique by scoopr.
When natural scrolling is disabled on OS X, the X-axis of the scroll
offsets is inverted compared to the direction on Windows. The X11
scrolling directions are unspecified and so have been aligned with the
Windows port. Natural scrolling inverts both axes on both OS X and X11,
so the issue remains when the feature is enabled.
This inverts the provided X-axis scroll offset, making "unnatural"
scroll data align with the Windows and X11 ports and "natual" scroll
data be fully inverted and aligned with its counterpart on X11.
Fixes#239.
We need to invoke both [NSCursor set] and [NSView addCursorRect].
First call is responsible for changing the cursor if it's inside the
view; second call is responsible for keeping the cursor the same if it's
outside.
Don't implement resetCursorRects: this occasionally hides the cursor
since an empty cursor is assigned to the window rectangle. Implementing
this method is not required since OS displays the window cursor
correctly by default.
Don't reset cursor mode when window loses focus: once again, OS handles
this correctly, and this means that the window cursor state is restored
when window gains focus again.