aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRay <raysan5@gmail.com>2019-01-10 16:57:30 +0100
committerGitHub <noreply@github.com>2019-01-10 16:57:30 +0100
commit91ea00747838b38b0db4808ea43124d50d316a1e (patch)
treef1428e583f4ed5ee8c7060c47da55e8ce0194882 /src
parent93471b0a7c75fc675f27fc74dfda281eb8310a7a (diff)
parent56173d7cf457413fd56e26967becc7c5054aa2cf (diff)
downloadraylib-91ea00747838b38b0db4808ea43124d50d316a1e.tar.gz
raylib-91ea00747838b38b0db4808ea43124d50d316a1e.zip
Merge pull request #719 from MarcoLizza/window-visibility
Window visibility
Diffstat (limited to 'src')
-rw-r--r--src/core.c32
-rw-r--r--src/raylib.h8
2 files changed, 36 insertions, 4 deletions
diff --git a/src/core.c b/src/core.c
index 1c703e5b..c84610ba 100644
--- a/src/core.c
+++ b/src/core.c
@@ -826,6 +826,31 @@ void SetWindowSize(int width, int height)
#endif
}
+// Show the window
+void ShowWindow()
+{
+#if defined(PLATFORM_DESKTOP)
+ glfwShowWindow(window);
+#endif
+}
+
+// Hide the window
+void HideWindow()
+{
+#if defined(PLATFORM_DESKTOP)
+ glfwHideWindow(window);
+#endif
+}
+
+// Check if window is currently hidden
+bool IsWindowHidden()
+{
+#if defined(PLATFORM_DESKTOP)
+ return glfwGetWindowAttrib(window, GLFW_VISIBLE) == GL_FALSE;
+#endif
+ return false;
+}
+
// Get current screen width
int GetScreenWidth(void)
{
@@ -2257,8 +2282,11 @@ static bool InitGraphicsDevice(int width, int height)
//glfwWindowHint(GLFW_AUX_BUFFERS, 0); // Number of auxiliar buffers
// Check some Window creation flags
- if (configFlags & FLAG_WINDOW_RESIZABLE) glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE); // Resizable window
- else glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE); // Avoid window being resizable
+ if (configFlags & FLAG_WINDOW_HIDDEN) glfwWindowHint(GLFW_VISIBLE, GL_FALSE); // Visible window
+ else glfwWindowHint(GLFW_VISIBLE, GL_TRUE); // Window initially hidden
+
+ if (configFlags & FLAG_WINDOW_RESIZABLE) glfwWindowHint(GLFW_RESIZABLE, GL_TRUE); // Resizable window
+ else glfwWindowHint(GLFW_RESIZABLE, GL_FALSE); // Avoid window being resizable
if (configFlags & FLAG_WINDOW_UNDECORATED) glfwWindowHint(GLFW_DECORATED, GLFW_FALSE); // Border and buttons on Window
else glfwWindowHint(GLFW_DECORATED, GLFW_TRUE); // Decorated window
diff --git a/src/raylib.h b/src/raylib.h
index ed863649..b554d10d 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -415,8 +415,9 @@ typedef enum {
FLAG_WINDOW_RESIZABLE = 4, // Set to allow resizable window
FLAG_WINDOW_UNDECORATED = 8, // Set to disable window decoration (frame and buttons)
FLAG_WINDOW_TRANSPARENT = 16, // Set to allow transparent window
- FLAG_MSAA_4X_HINT = 32, // Set to try enabling MSAA 4X
- FLAG_VSYNC_HINT = 64 // Set to try enabling V-Sync on GPU
+ FLAG_WINDOW_HIDDEN = 32, // Set to create the window initially hidden
+ FLAG_MSAA_4X_HINT = 64, // Set to try enabling MSAA 4X
+ FLAG_VSYNC_HINT = 128 // Set to try enabling V-Sync on GPU
} ConfigFlag;
// Trace log type
@@ -844,6 +845,9 @@ RLAPI void SetWindowPosition(int x, int y); // Set window
RLAPI void SetWindowMonitor(int monitor); // Set monitor for the current window (fullscreen mode)
RLAPI void SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
RLAPI void SetWindowSize(int width, int height); // Set window dimensions
+RLAPI void ShowWindow(); // Show the window
+RLAPI void HideWindow(); // Hide the window
+RLAPI bool IsWindowHidden(); // Check if window is currently hidden
RLAPI int GetScreenWidth(void); // Get current screen width
RLAPI int GetScreenHeight(void); // Get current screen height
RLAPI void *GetWindowHandle(void); // Get native window handle