diff --git a/docs/intro.dox b/docs/intro.dox index 58beca6a..90612ac0 100644 --- a/docs/intro.dox +++ b/docs/intro.dox @@ -189,6 +189,7 @@ function: - @ref glfwDestroyCursor - @ref glfwPollEvents - @ref glfwWaitEvents + - @ref glfwTerminate @subsection thread_safety Thread safety diff --git a/docs/news.dox b/docs/news.dox index 4514ca2a..925e3f1b 100644 --- a/docs/news.dox +++ b/docs/news.dox @@ -7,20 +7,20 @@ @section news_31 New features in version 3.1 -@subsection news_31_cursor Custom system cursor support +@subsection news_31_cursor Custom mouse cursor images GLFW now supports creating and setting both custom and standard system cursors. They can be created with @ref glfwCreateCursor or @ref glfwCreateStandardCursor, set with @ref glfwSetCursor and destroyed with @ref glfwDestroyCursor. -@subsection news_31_drop File drop event support +@subsection news_31_drop File drop event GLFW now provides a callback for receiving the paths of files dropped onto GLFW windows. The callback is set with @ref glfwSetDropCallback. -@subsection news_31_emptyevent Main thread waking support +@subsection news_31_emptyevent Main thread wake-up GLFW now provides the @ref glfwPostEmptyEvent function for posting an empty event from another thread to the main thread event queue, causing @ref @@ -33,7 +33,7 @@ GLFW now supports querying the size, on each side, of the frame around the client area of a window, with @ref glfwGetWindowFrameSize. -@subsection news_31_autoiconify Multi-monitor installation support +@subsection news_31_autoiconify Simultaneous multi-monitor rendering GLFW now supports disabling auto-iconification of full screen windows with the [GLFW_AUTO_ICONIFY](@ref window_hints_wnd) window hint. This is intended @@ -53,6 +53,12 @@ GLFW now supports preventing a windowed mode window from gaining input focus on creation, with the [GLFW_FOCUSED](@ref window_hints_wnd) window hint. +@subsection news_31_direct Direct access for window attributes and cursor position + +GLFW now queries the window focus, visibility and iconification attributes and +the cursor position directly instead of returning cached data. + + @subsection news_31_charmods Character with modifiers callback GLFW now provides a callback for character events with modifier key bits. The @@ -61,7 +67,7 @@ callback, this will report character events that will not result in a character being input, for example if the Control key is held down. -@subsection news_31_release Context release behavior support +@subsection news_31_release Context release behaviors GLFW now supports controlling whether the pipeline is flushed when a context is made non-current, with the @@ -69,23 +75,24 @@ made non-current, with the machine supports the `GL_KHR_context_flush_control` extension. -@subsection news_31_single Single buffering support +@subsection news_31_single Single buffered framebuffers GLFW now supports the creation of single buffered windows, with the [GLFW_DOUBLEBUFFER](@ref window_hints_fb) window hint. -@subsection news_31_egl Stable EGL support +@subsection news_31_egl Stable EGL implementation The support for EGL is now stable, successfully running on PandaBoards, Mesa, ANGLE, Wayland, AMD EGL and others. -@subsection news_31_getcursorpos Direct query for cursor position +@subsection news_31_glext Macro for including extension header -GLFW now queries the system cursor position directly when you call @ref -glfwGetCursorPos instead of returning cached data, except for when the window is -in captured cursor mode. +GLFW now includes the extension header appropriate for the chosen OpenGL or +OpenGL ES header when [GLFW_INCLUDE_GLEXT](@ref build_macros) is defined. GLFW +does not provide these headers. They must be provided by your development +environment or your OpenGL or OpenGL ES SDK. @section news_30 New features in version 3.0 diff --git a/include/GLFW/glfw3.h b/include/GLFW/glfw3.h index ef0280f3..1e3895f0 100644 --- a/include/GLFW/glfw3.h +++ b/include/GLFW/glfw3.h @@ -1128,6 +1128,9 @@ GLFWAPI int glfwInit(void); * @warning No window's context may be current on another thread when this * function is called. * + * @par Reentrancy + * This function may not be called from a callback. + * * @par Thread Safety * This function may only be called from the main thread. * @@ -1211,6 +1214,9 @@ GLFWAPI const char* glfwGetVersionString(void); * error, it is not guaranteed to be valid after the callback has returned. If * you wish to use it after the callback returns, you need to make a copy. * + * Once set, the error callback remains set even after the library has been + * terminated. + * * @param[in] cbfun The new callback, or `NULL` to remove the currently set * callback. * @return The previously set callback, or `NULL` if no callback was set. @@ -2622,8 +2628,13 @@ GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos); * window. The window must be focused. If the window does not have focus when * this function is called, it fails silently. * - * If the cursor is disabled (with `GLFW_CURSOR_DISABLED`) then the cursor - * position is unbounded and limited only by the minimum and maximum values of + * __Do not use this function__ to implement things like camera controls. GLFW + * already provides the `GLFW_CURSOR_DISABLED` cursor mode that hides the + * cursor, transparently re-centers it and provides unconstrained cursor + * motion. See @ref glfwSetInputMode for more information. + * + * If the cursor mode is `GLFW_CURSOR_DISABLED` then the cursor position is + * unconstrained and limited only by the minimum and maximum values of * a `double`. * * @param[in] window The desired window.