mirror of
https://github.com/glfw/glfw.git
synced 2024-11-23 21:24:35 +00:00
Update macOS OpenGL compatibility notes
This commit is contained in:
parent
97892c6037
commit
dfebad786d
@ -242,24 +242,27 @@ extensions are unavailable, the `GLFW_SRGB_CAPABLE` hint will have no effect.
|
|||||||
|
|
||||||
## OpenGL on macOS {#compat_osx}
|
## OpenGL on macOS {#compat_osx}
|
||||||
|
|
||||||
Support for OpenGL 3.2 and above was introduced with OS X 10.7 and even then
|
macOS (as of version 14) still provides OpenGL but it has been deprecated by
|
||||||
only forward-compatible, core profile contexts are supported. Support for
|
Apple. While the API is still available, it is poorly maintained and frequently
|
||||||
OpenGL 4.1 was introduced with OS X 10.9, also limited to forward-compatible,
|
develops new issues. On modern systems, OpenGL is implemented on top of Metal
|
||||||
core profile contexts. There is also still no mechanism for requesting debug
|
and is not fully thread-safe.
|
||||||
contexts or no-error contexts. Versions of Mac OS X earlier than 10.7 support
|
|
||||||
at most OpenGL version 2.1.
|
|
||||||
|
|
||||||
Because of this, on OS X 10.7 and later, the `GLFW_CONTEXT_VERSION_MAJOR` and
|
macOS does not support OpenGL stereo rendering. If the `GLFW_STEREO` hint is
|
||||||
`GLFW_CONTEXT_VERSION_MINOR` hints will cause @ref glfwCreateWindow to fail if
|
set to true, OpenGL context creation will always fail.
|
||||||
given version 3.0 or 3.1. The `GLFW_OPENGL_PROFILE` hint must be set to
|
|
||||||
`GLFW_OPENGL_CORE_PROFILE` when creating OpenGL 3.2 and later contexts. The
|
|
||||||
`GLFW_CONTEXT_DEBUG` and `GLFW_CONTEXT_NO_ERROR` hints are ignored.
|
|
||||||
|
|
||||||
Also, on Mac OS X 10.6 and below, the `GLFW_CONTEXT_VERSION_MAJOR` and
|
macOS only supports OpenGL core profile contexts that are forward-compatible,
|
||||||
`GLFW_CONTEXT_VERSION_MINOR` hints will fail if given a version above 2.1,
|
but the `GLFW_OPENGL_FORWARD_COMPAT` hint is ignored since GLFW 3.4. Even if
|
||||||
setting the `GLFW_OPENGL_PROFILE` or `GLFW_OPENGL_FORWARD_COMPAT` hints to
|
this hint is set to false (the default), a forward-compatible context will be
|
||||||
a non-default value will cause @ref glfwCreateWindow to fail and the
|
returned if available.
|
||||||
`GLFW_CONTEXT_DEBUG` hint is ignored.
|
|
||||||
|
macOS does not support OpenGL debug contexts, no-error contexts or robustness.
|
||||||
|
The `GLFW_CONTEXT_DEBUG`, `GLFW_CONTEXT_NO_ERROR` and `GLFW_CONTEXT_ROBUSTNESS`
|
||||||
|
hints will be ignored and a context without these features will be returned.
|
||||||
|
|
||||||
|
macOS does not flush OpenGL contexts when they are made non-current. The
|
||||||
|
`GLFW_CONTEXT_RELEASE_BEHAVIOR` hint is ignored and the release behavior will
|
||||||
|
always be the equivalent of `GLFW_RELEASE_BEHAVIOR_NONE`. If you need a context
|
||||||
|
to be flushed, call `glFlush` before making it non-current.
|
||||||
|
|
||||||
|
|
||||||
## Vulkan loader and API {#compat_vulkan}
|
## Vulkan loader and API {#compat_vulkan}
|
||||||
|
@ -183,16 +183,16 @@ GLFWbool _glfwCreateContextNSGL(_GLFWwindow* window,
|
|||||||
return GLFW_FALSE;
|
return GLFW_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Context robustness modes (GL_KHR_robustness) are not yet supported by
|
// Context robustness modes (GL_KHR_robustness) are not supported by
|
||||||
// macOS but are not a hard constraint, so ignore and continue
|
// macOS but are not a hard constraint, so ignore and continue
|
||||||
|
|
||||||
// Context release behaviors (GL_KHR_context_flush_control) are not yet
|
// Context release behaviors (GL_KHR_context_flush_control) are not
|
||||||
// supported by macOS but are not a hard constraint, so ignore and continue
|
// supported by macOS but are not a hard constraint, so ignore and continue
|
||||||
|
|
||||||
// Debug contexts (GL_KHR_debug) are not yet supported by macOS but are not
|
// Debug contexts (GL_KHR_debug) are not supported by macOS but are not
|
||||||
// a hard constraint, so ignore and continue
|
// a hard constraint, so ignore and continue
|
||||||
|
|
||||||
// No-error contexts (GL_KHR_no_error) are not yet supported by macOS but
|
// No-error contexts (GL_KHR_no_error) are not supported by macOS but
|
||||||
// are not a hard constraint, so ignore and continue
|
// are not a hard constraint, so ignore and continue
|
||||||
|
|
||||||
#define ADD_ATTRIB(a) \
|
#define ADD_ATTRIB(a) \
|
||||||
|
Loading…
Reference in New Issue
Block a user