diff --git a/docs/compat.dox b/docs/compat.dox index b6b6307b..e7aa8d87 100644 --- a/docs/compat.dox +++ b/docs/compat.dox @@ -109,8 +109,8 @@ glfwCreateWindow to fail. GLFW uses the `GLX_ARB_create_context_profile` extension to provide support for context profiles. Where this extension is unavailable, setting the `GLFW_OPENGL_PROFILE` hint to anything but `GLFW_OPENGL_ANY_PROFILE`, or setting -`GLFW_CLIENT_API` to anything but `GLFW_OPENGL_API` will cause @ref -glfwCreateWindow to fail. +`GLFW_CLIENT_API` to anything but `GLFW_OPENGL_API` or `GLFW_NO_API` will cause +@ref glfwCreateWindow to fail. GLFW uses the `GLX_ARB_context_flush_control` extension to provide control over whether a context is flushed when it is released (made non-current). Where this diff --git a/docs/context.dox b/docs/context.dox index 0d5c3230..763da3cc 100644 --- a/docs/context.dox +++ b/docs/context.dox @@ -80,6 +80,14 @@ when writing a command-line only application. The menu bar setup can be disabled with a [compile-time option](@ref compile_options_osx). +@subsection context_less Windows without contexts + +You can disable context creation by setting the +[GLFW_CLIENT_API](@ref window_hints_ctx) hint to `GLFW_NO_API`. Windows without +contexts may not be passed to @ref glfwMakeContextCurrent or @ref +glfwSwapBuffers. + + @section context_current Current context Before you can make OpenGL or OpenGL ES calls, you need to have a current diff --git a/docs/window.dox b/docs/window.dox index b6a2d688..1f6d1e59 100644 --- a/docs/window.dox +++ b/docs/window.dox @@ -223,8 +223,8 @@ This hint is ignored for windowed mode windows. @subsubsection window_hints_ctx Context related hints `GLFW_CLIENT_API` specifies which client API to create the context for. -Possible values are `GLFW_OPENGL_API` and `GLFW_OPENGL_ES_API`. This is a hard -constraint. +Possible values are `GLFW_OPENGL_API`, `GLFW_OPENGL_ES_API` and `GLFW_NO_API`. +This is a hard constraint. `GLFW_CONTEXT_VERSION_MAJOR` and `GLFW_CONTEXT_VERSION_MINOR` specify the client API version that the created context must be compatible with. The exact @@ -337,7 +337,7 @@ Window hint | Default value | Supported values `GLFW_STEREO` | `GLFW_FALSE` | `GLFW_TRUE` or `GLFW_FALSE` `GLFW_SRGB_CAPABLE` | `GLFW_FALSE` | `GLFW_TRUE` or `GLFW_FALSE` `GLFW_DOUBLEBUFFER` | `GLFW_TRUE` | `GLFW_TRUE` or `GLFW_FALSE` -`GLFW_CLIENT_API` | `GLFW_OPENGL_API` | `GLFW_OPENGL_API` or `GLFW_OPENGL_ES_API` +`GLFW_CLIENT_API` | `GLFW_OPENGL_API` | `GLFW_OPENGL_API`, `GLFW_OPENGL_ES_API` or `GLFW_NO_API` `GLFW_CONTEXT_VERSION_MAJOR` | 1 | Any valid major version number of the chosen client API `GLFW_CONTEXT_VERSION_MINOR` | 0 | Any valid minor version number of the chosen client API `GLFW_CONTEXT_ROBUSTNESS` | `GLFW_NO_ROBUSTNESS` | `GLFW_NO_ROBUSTNESS`, `GLFW_NO_RESET_NOTIFICATION` or `GLFW_LOSE_CONTEXT_ON_RESET` @@ -810,7 +810,7 @@ topmost or always-on-top. This is controlled by the @subsubsection window_attribs_ctx Context related attributes `GLFW_CLIENT_API` indicates the client API provided by the window's context; -either `GLFW_OPENGL_API` or `GLFW_OPENGL_ES_API`. +either `GLFW_OPENGL_API`, `GLFW_OPENGL_ES_API` or `GLFW_NO_API`. `GLFW_CONTEXT_VERSION_MAJOR`, `GLFW_CONTEXT_VERSION_MINOR` and `GLFW_CONTEXT_REVISION` indicate the client API version of the window's context. diff --git a/include/GLFW/glfw3.h b/include/GLFW/glfw3.h index 19816c19..8a7edefd 100644 --- a/include/GLFW/glfw3.h +++ b/include/GLFW/glfw3.h @@ -3297,6 +3297,10 @@ GLFWAPI void glfwSetTime(double time); * whether a context performs this flush by setting the * [GLFW_CONTEXT_RELEASE_BEHAVIOR](@ref window_hints_ctx) window hint. * + * The specified window must have an OpenGL or OpenGL ES context. Specifying + * a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT + * error. + * * @param[in] window The window whose context to make current, or `NULL` to * detach the current context. * @@ -3338,6 +3342,10 @@ GLFWAPI GLFWwindow* glfwGetCurrentContext(void); * the swap interval is greater than zero, the GPU driver waits the specified * number of screen updates before swapping the buffers. * + * The specified window must have an OpenGL or OpenGL ES context. Specifying + * a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT + * error. + * * @param[in] window The window whose buffers to swap. * * @par Thread Safety