Update fullscreen related docs

This commit is contained in:
Eden Salomon 2015-10-22 20:51:02 +03:00
parent 061c273da6
commit 390994c3ec
3 changed files with 40 additions and 16 deletions

View File

@ -44,12 +44,29 @@ the event.
@subsubsection window_full_screen Full screen windows @subsubsection window_full_screen Full screen windows
To create a full screen window, you need to specify which monitor the window To create a full screen window, you can use the GLFW_FULLSCREEN window hint.
should use. In most cases, the user's primary monitor is a good choice. It is also possible to specify which monitor the window should use. In most
For more information about retrieving monitors, see @ref monitor_monitors. cases, the user's primary monitor is a good choice. For more information about
retrieving monitors, see @ref monitor_monitors.
@code @code
glfwWindowHint(GLFW_FULLSCREEN, GLFW_TRUE);
GLFWwindow* window = glfwCreateWindow(640, 480, "My Title", glfwGetPrimaryMonitor(), NULL); GLFWwindow* window = glfwCreateWindow(640, 480, "My Title", glfwGetPrimaryMonitor(), NULL);
// same as passing null for the monitor
@endcode
The mode of a window, whether created as fullscreen or as a windowed mode window,
can be toggled at any time using @ref glfwToggleWindowFullscreen.
@code
glfwToggleWindowFullscreen(window);
@endcode
You can also get the current window state with @ref glfwGetWindowAttrib.
@code
int fullscreen = glfwGetWindowAttrib(window, GLFW_FULLSCREEN);
@endcode @endcode
Full screen windows cover the entire display area of a monitor, have no border Full screen windows cover the entire display area of a monitor, have no border
@ -92,6 +109,7 @@ such a window, simply request the current video mode.
@code @code
const GLFWvidmode* mode = glfwGetVideoMode(monitor); const GLFWvidmode* mode = glfwGetVideoMode(monitor);
glfwWindowHint(GLFW_FULLSCREEN, GLFW_TRUE);
glfwWindowHint(GLFW_RED_BITS, mode->redBits); glfwWindowHint(GLFW_RED_BITS, mode->redBits);
glfwWindowHint(GLFW_GREEN_BITS, mode->greenBits); glfwWindowHint(GLFW_GREEN_BITS, mode->greenBits);
glfwWindowHint(GLFW_BLUE_BITS, mode->blueBits); glfwWindowHint(GLFW_BLUE_BITS, mode->blueBits);
@ -174,6 +192,9 @@ above other regular windows, also called topmost or always-on-top. This is
intended primarily for debugging purposes and cannot be used to implement proper intended primarily for debugging purposes and cannot be used to implement proper
full screen windows. This hint is ignored for full screen windows. full screen windows. This hint is ignored for full screen windows.
`GLFW_FULLSCREEN` specifies whether the window will be created in fullscreen mode.
The window can always be switched back to windowed mode using @ref glfwToggleWindowFullscreen.
@subsubsection window_hints_fb Framebuffer related hints @subsubsection window_hints_fb Framebuffer related hints
@ -304,6 +325,7 @@ Window hint | Default value | Supported values
`GLFW_FOCUSED` | `GLFW_TRUE` | `GLFW_TRUE` or `GLFW_FALSE` `GLFW_FOCUSED` | `GLFW_TRUE` | `GLFW_TRUE` or `GLFW_FALSE`
`GLFW_AUTO_ICONIFY` | `GLFW_TRUE` | `GLFW_TRUE` or `GLFW_FALSE` `GLFW_AUTO_ICONIFY` | `GLFW_TRUE` | `GLFW_TRUE` or `GLFW_FALSE`
`GLFW_FLOATING` | `GLFW_FALSE` | `GLFW_TRUE` or `GLFW_FALSE` `GLFW_FLOATING` | `GLFW_FALSE` | `GLFW_TRUE` or `GLFW_FALSE`
`GLFW_FULLSCREEN` | `GLFW_FALSE` | `GLFW_TRUE` or `GLFW_FALSE`
`GLFW_RED_BITS` | 8 | 0 to `INT_MAX` or `GLFW_DONT_CARE` `GLFW_RED_BITS` | 8 | 0 to `INT_MAX` or `GLFW_DONT_CARE`
`GLFW_GREEN_BITS` | 8 | 0 to `INT_MAX` or `GLFW_DONT_CARE` `GLFW_GREEN_BITS` | 8 | 0 to `INT_MAX` or `GLFW_DONT_CARE`
`GLFW_BLUE_BITS` | 8 | 0 to `INT_MAX` or `GLFW_DONT_CARE` `GLFW_BLUE_BITS` | 8 | 0 to `INT_MAX` or `GLFW_DONT_CARE`
@ -599,8 +621,9 @@ GLFWmonitor* monitor = glfwGetWindowMonitor(window);
This monitor handle is one of those returned by @ref glfwGetMonitors. This monitor handle is one of those returned by @ref glfwGetMonitors.
For windowed mode windows, this function returns `NULL`. This is the For windowed mode windows, this function returns the monitor that will be used
recommended way to tell full screen windows from windowed mode windows. if the mode would be switched to fullscreen. Using this function to query the mode
of the window will no longer work and @glfwGetWindowAttrib should be used instead.
@subsection window_iconify Window iconification @subsection window_iconify Window iconification
@ -663,7 +686,8 @@ glfwHideWindow(window);
This makes the window completely invisible to the user, including removing it This makes the window completely invisible to the user, including removing it
from the task bar, dock or window list. Full screen windows cannot be hidden from the task bar, dock or window list. Full screen windows cannot be hidden
and calling @ref glfwHideWindow on a full screen window does nothing. and calling @ref glfwHideWindow on a full screen window does nothing. The window
should be switched to windowed mode first and then hidden.
Hidden windows can be shown with @ref glfwShowWindow. Hidden windows can be shown with @ref glfwShowWindow.

View File

@ -1571,11 +1571,12 @@ GLFWAPI void glfwWindowHint(int target, int hint);
* of the created window, framebuffer and context, see @ref * of the created window, framebuffer and context, see @ref
* glfwGetWindowAttrib, @ref glfwGetWindowSize and @ref glfwGetFramebufferSize. * glfwGetWindowAttrib, @ref glfwGetWindowSize and @ref glfwGetFramebufferSize.
* *
* To create a full screen window, you need to specify the monitor the window * To create a full screen window, you can use the GLFW_FULLSCREEN window hint.
* will cover. If no monitor is specified, windowed mode will be used. Unless * It is also possible to specify which monitor the window should use. If no
* you have a way for the user to choose a specific monitor, it is recommended * monitor is specified, the primary monitor is used. Unless you have a way for
* that you pick the primary monitor. For more information on how to query * the user to choose a specific monitor, it is recommended that you pick the
* connected monitors, see @ref monitor_monitors. * primary monitor. For more information on how to query connected monitors,
* see @ref monitor_monitors.
* *
* For full screen windows, the specified size becomes the resolution of the * For full screen windows, the specified size becomes the resolution of the
* window's _desired video mode_. As long as a full screen window has input * window's _desired video mode_. As long as a full screen window has input
@ -1606,7 +1607,7 @@ GLFWAPI void glfwWindowHint(int target, int hint);
* This must be greater than zero. * This must be greater than zero.
* @param[in] title The initial, UTF-8 encoded window title. * @param[in] title The initial, UTF-8 encoded window title.
* @param[in] monitor The monitor to use for full screen mode, or `NULL` to use * @param[in] monitor The monitor to use for full screen mode, or `NULL` to use
* windowed mode. * the primary monitor.
* @param[in] share The window whose context to share resources with, or `NULL` * @param[in] share The window whose context to share resources with, or `NULL`
* to not share resources. * to not share resources.
* @return The handle of the created window, or `NULL` if an * @return The handle of the created window, or `NULL` if an
@ -2108,7 +2109,7 @@ GLFWAPI void glfwHideWindow(GLFWwindow* window);
* in windowed mode. If the window is already in fullscreen mode, the fuctions restores * in windowed mode. If the window is already in fullscreen mode, the fuctions restores
* the monitor video mode and the specified window switches back to windowed mode. * the monitor video mode and the specified window switches back to windowed mode.
* *
* @param[in] window The window to toggle his mode. * @param[in] window The window to toggle the mode on.
* *
* @ingroup window * @ingroup window
*/ */

View File

@ -249,7 +249,6 @@ void glfwDefaultWindowHints(void)
_glfw.hints.window.decorated = GLFW_TRUE; _glfw.hints.window.decorated = GLFW_TRUE;
_glfw.hints.window.focused = GLFW_TRUE; _glfw.hints.window.focused = GLFW_TRUE;
_glfw.hints.window.autoIconify = GLFW_TRUE; _glfw.hints.window.autoIconify = GLFW_TRUE;
_glfw.hints.window.fullscreen = GLFW_FALSE;
// The default is 24 bits of color, 24 bits of depth and 8 bits of stencil, // The default is 24 bits of color, 24 bits of depth and 8 bits of stencil,
// double buffered // double buffered
@ -572,7 +571,7 @@ GLFWAPI void glfwShowWindow(GLFWwindow* handle)
_GLFW_REQUIRE_INIT(); _GLFW_REQUIRE_INIT();
if (window->fullscreen) if (window->fullscreen)
_glfwPlatformToggleWindowFullscreen(window); return;
_glfwPlatformShowWindow(window); _glfwPlatformShowWindow(window);
} }
@ -584,7 +583,7 @@ GLFWAPI void glfwHideWindow(GLFWwindow* handle)
_GLFW_REQUIRE_INIT(); _GLFW_REQUIRE_INIT();
if (window->fullscreen) if (window->fullscreen)
_glfwPlatformToggleWindowFullscreen(window); return;
_glfwPlatformHideWindow(window); _glfwPlatformHideWindow(window);
} }