|
|
|
@ -224,7 +224,8 @@ void _glfwInputWindowCloseRequest(_GLFWwindow* window) |
|
|
|
|
//========================================================================
|
|
|
|
|
|
|
|
|
|
GLFWAPI GLFWwindow glfwCreateWindow(int width, int height, |
|
|
|
|
int mode, const char* title, |
|
|
|
|
const char* title, |
|
|
|
|
GLFWmonitor monitor, |
|
|
|
|
GLFWwindow share) |
|
|
|
|
{ |
|
|
|
|
_GLFWfbconfig fbconfig; |
|
|
|
@ -257,7 +258,6 @@ GLFWAPI GLFWwindow glfwCreateWindow(int width, int height, |
|
|
|
|
fbconfig.samples = Max(_glfwLibrary.hints.samples, 0); |
|
|
|
|
|
|
|
|
|
// Set up desired window config
|
|
|
|
|
wndconfig.mode = mode; |
|
|
|
|
wndconfig.title = title; |
|
|
|
|
wndconfig.refreshRate = Max(_glfwLibrary.hints.refreshRate, 0); |
|
|
|
|
wndconfig.resizable = _glfwLibrary.hints.resizable ? GL_TRUE : GL_FALSE; |
|
|
|
@ -268,6 +268,7 @@ GLFWAPI GLFWwindow glfwCreateWindow(int width, int height, |
|
|
|
|
wndconfig.glDebug = _glfwLibrary.hints.glDebug ? GL_TRUE : GL_FALSE; |
|
|
|
|
wndconfig.glProfile = _glfwLibrary.hints.glProfile; |
|
|
|
|
wndconfig.glRobustness = _glfwLibrary.hints.glRobustness ? GL_TRUE : GL_FALSE; |
|
|
|
|
wndconfig.monitor = (_GLFWmonitor*) monitor; |
|
|
|
|
wndconfig.share = share; |
|
|
|
|
|
|
|
|
|
// Reset to default values for the next call
|
|
|
|
@ -280,13 +281,6 @@ GLFWAPI GLFWwindow glfwCreateWindow(int width, int height, |
|
|
|
|
// Save the currently current context so it can be restored later
|
|
|
|
|
previous = glfwGetCurrentContext(); |
|
|
|
|
|
|
|
|
|
if (mode != GLFW_WINDOWED && mode != GLFW_FULLSCREEN) |
|
|
|
|
{ |
|
|
|
|
_glfwSetError(GLFW_INVALID_ENUM, |
|
|
|
|
"glfwCreateWindow: Invalid window mode"); |
|
|
|
|
return GL_FALSE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Check width & height
|
|
|
|
|
if (width > 0 && height <= 0) |
|
|
|
|
{ |
|
|
|
@ -320,10 +314,10 @@ GLFWAPI GLFWwindow glfwCreateWindow(int width, int height, |
|
|
|
|
// Remember window settings
|
|
|
|
|
window->width = width; |
|
|
|
|
window->height = height; |
|
|
|
|
window->mode = mode; |
|
|
|
|
window->resizable = wndconfig.resizable; |
|
|
|
|
window->cursorMode = GLFW_CURSOR_NORMAL; |
|
|
|
|
window->systemKeys = GL_TRUE; |
|
|
|
|
window->monitor = (_GLFWmonitor*) monitor; |
|
|
|
|
|
|
|
|
|
// Open the actual window and create its context
|
|
|
|
|
if (!_glfwPlatformCreateWindow(window, &wndconfig, &fbconfig)) |
|
|
|
@ -364,10 +358,10 @@ GLFWAPI GLFWwindow glfwCreateWindow(int width, int height, |
|
|
|
|
|
|
|
|
|
// The GLFW specification states that fullscreen windows have the cursor
|
|
|
|
|
// captured by default
|
|
|
|
|
if (mode == GLFW_FULLSCREEN) |
|
|
|
|
if (wndconfig.monitor) |
|
|
|
|
glfwSetInputMode(window, GLFW_CURSOR_MODE, GLFW_CURSOR_CAPTURED); |
|
|
|
|
|
|
|
|
|
if (mode == GLFW_WINDOWED && wndconfig.visible) |
|
|
|
|
if (wndconfig.monitor == NULL && wndconfig.visible) |
|
|
|
|
glfwShowWindow(window); |
|
|
|
|
|
|
|
|
|
return window; |
|
|
|
@ -570,7 +564,7 @@ GLFWAPI void glfwSetWindowSize(GLFWwindow handle, int width, int height) |
|
|
|
|
|
|
|
|
|
_glfwPlatformSetWindowSize(window, width, height); |
|
|
|
|
|
|
|
|
|
if (window->mode == GLFW_FULLSCREEN) |
|
|
|
|
if (window->monitor) |
|
|
|
|
{ |
|
|
|
|
// Refresh window parameters (may have changed due to changed video
|
|
|
|
|
// modes)
|
|
|
|
@ -615,7 +609,7 @@ GLFWAPI void glfwSetWindowPos(GLFWwindow handle, int xpos, int ypos) |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (window->mode == GLFW_FULLSCREEN || window->iconified) |
|
|
|
|
if (window->monitor || window->iconified) |
|
|
|
|
{ |
|
|
|
|
// TODO: Figure out if this is an error
|
|
|
|
|
return; |
|
|
|
@ -665,7 +659,7 @@ GLFWAPI void glfwRestoreWindow(GLFWwindow handle) |
|
|
|
|
|
|
|
|
|
_glfwPlatformRestoreWindow(window); |
|
|
|
|
|
|
|
|
|
if (window->mode == GLFW_FULLSCREEN) |
|
|
|
|
if (window->monitor) |
|
|
|
|
_glfwPlatformRefreshWindowParams(window); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -684,7 +678,7 @@ GLFWAPI void glfwShowWindow(GLFWwindow handle) |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (window->mode == GLFW_FULLSCREEN) |
|
|
|
|
if (window->monitor) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
_glfwPlatformShowWindow(window); |
|
|
|
@ -705,7 +699,7 @@ GLFWAPI void glfwHideWindow(GLFWwindow handle) |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (window->mode == GLFW_FULLSCREEN) |
|
|
|
|
if (window->monitor) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
_glfwPlatformHideWindow(window); |
|
|
|
|