mirror of
https://github.com/glfw/glfw.git
synced 2026-09-18 14:45:46 +00:00
Use CALayer instead of NSView for EGLNativeWindowType
The only two EGL implementations on macOS are Swiftshader and ANGLE. While Swiftshader supports both `NSView` and `CALayer` as `EGLNativeWindowType`, ANGLE supports only `CALayer`. Furthermore Swiftshader's OpenGL ES frontend is deprecated in favor of using ANGLE's Vulkan backend on top of Swiftshader's Vulkan frontend. This means that on macOS `EGLNativeWindowType` should be a `CALayer` for compatibility with ANGLE. Fixes #1169. Closes #1680.
This commit is contained in:
committed by
Camilla Löwy
parent
51a465ee2b
commit
91eebe922d
@@ -906,6 +906,11 @@ int _glfwPlatformCreateWindow(_GLFWwindow* window,
|
||||
}
|
||||
else if (ctxconfig->source == GLFW_EGL_CONTEXT_API)
|
||||
{
|
||||
// EGL implementation on macOS use CALayer* EGLNativeWindowType so we
|
||||
// need to get the layer for EGL window surface creation.
|
||||
[window->ns.view setWantsLayer:YES];
|
||||
window->ns.layer = [window->ns.view layer];
|
||||
|
||||
if (!_glfwInitEGL())
|
||||
return GLFW_FALSE;
|
||||
if (!_glfwCreateContextEGL(window, ctxconfig, fbconfig))
|
||||
|
||||
Reference in New Issue
Block a user