Added window parameter to callbacks, handled NULL argument to glfwIsWindow.

This commit is contained in:
Camilla Berglund 2010-09-09 19:01:16 +02:00
parent 29a0ca47f9
commit e229ccd7c4
5 changed files with 29 additions and 23 deletions

View File

@ -364,14 +364,14 @@ typedef struct {
} GLFWvidmode;
/* Function pointer types */
typedef void (* GLFWwindowsizefun)(int,int);
typedef int (* GLFWwindowclosefun)(void);
typedef void (* GLFWwindowrefreshfun)(void);
typedef void (* GLFWmousebuttonfun)(int,int);
typedef void (* GLFWmouseposfun)(int,int);
typedef void (* GLFWmousewheelfun)(int);
typedef void (* GLFWkeyfun)(int,int);
typedef void (* GLFWcharfun)(int,int);
typedef void (* GLFWwindowsizefun)(GLFWwindow,int,int);
typedef int (* GLFWwindowclosefun)(GLFWwindow);
typedef void (* GLFWwindowrefreshfun)(GLFWwindow);
typedef void (* GLFWmousebuttonfun)(GLFWwindow,int,int);
typedef void (* GLFWmouseposfun)(GLFWwindow,int,int);
typedef void (* GLFWmousewheelfun)(GLFWwindow,int);
typedef void (* GLFWkeyfun)(GLFWwindow,int,int);
typedef void (* GLFWcharfun)(GLFWwindow,int,int);
/*************************************************************************

View File

@ -61,7 +61,8 @@ static void enableMouseCursor(_GLFWwindow* window)
if (window->mousePosCallback)
{
window->mousePosCallback(window->mousePosX,
window->mousePosCallback(window,
window->mousePosX,
window->mousePosY);
}
}

View File

@ -203,7 +203,7 @@ GLFWAPI void glfwSetMousePosCallback(GLFWwindow window, GLFWmouseposfun cbfun)
// Call the callback function to let the application know the current
// mouse position
if (cbfun)
cbfun(window->mousePosX, window->mousePosY);
cbfun(window, window->mousePosX, window->mousePosY);
}
@ -222,6 +222,6 @@ GLFWAPI void glfwSetMouseWheelCallback(GLFWwindow window, GLFWmousewheelfun cbfu
// Call the callback function to let the application know the current
// mouse wheel position
if (cbfun)
cbfun(window->wheelPos);
cbfun(window, window->wheelPos);
}

View File

@ -141,7 +141,7 @@ void _glfwInputKey(_GLFWwindow* window, int key, int action)
// Call user callback function
if (window->keyCallback && (window->keyRepeat || !keyrepeat) )
window->keyCallback(key, action);
window->keyCallback(window, key, action);
}
@ -186,7 +186,7 @@ void _glfwInputChar(_GLFWwindow* window, int character, int action)
}
if (window->charCallback && (window->keyRepeat || !keyrepeat))
window->charCallback(character, action);
window->charCallback(window, character, action);
}
@ -206,7 +206,7 @@ void _glfwInputMouseClick(_GLFWwindow* window, int button, int action)
window->mouseButton[button] = (char) action;
if (window->mouseButtonCallback)
window->mouseButtonCallback(button, action);
window->mouseButtonCallback(window, button, action);
}
@ -580,9 +580,12 @@ GLFWAPI void glfwMakeWindowCurrent(GLFWwindow window)
GLFWAPI int glfwIsWindow(GLFWwindow window)
{
if (!_glfwInitialized)
return;
return GL_FALSE;
return window == _glfwLibrary.window;
if (window == NULL)
return GL_FALSE;
return (window == _glfwLibrary.window) ? GL_TRUE : GL_FALSE;
}
@ -873,7 +876,7 @@ GLFWAPI void glfwSetWindowSizeCallback(GLFWwindow window, GLFWwindowsizefun cbfu
// Call the callback function to let the application know the current
// window size
if (cbfun)
cbfun(window->width, window->height);
cbfun(window, window->width, window->height);
}
//========================================================================

View File

@ -1088,13 +1088,13 @@ static GLboolean processSingleEvent(void)
{
window->wheelPos++; // To verify: is this up or down?
if (window->mouseWheelCallback)
window->mouseWheelCallback(window->wheelPos);
window->mouseWheelCallback(window, window->wheelPos);
}
else if (event.xbutton.button == Button5)
{
window->wheelPos--;
if (window->mouseWheelCallback)
window->mouseWheelCallback(window->wheelPos);
window->mouseWheelCallback(window, window->wheelPos);
}
break;
}
@ -1155,7 +1155,8 @@ static GLboolean processSingleEvent(void)
if (window->mousePosCallback)
{
window->mousePosCallback(window->mousePosX,
window->mousePosCallback(window,
window->mousePosX,
window->mousePosY);
}
}
@ -1173,7 +1174,8 @@ static GLboolean processSingleEvent(void)
window->height = event.xconfigure.height;
if (window->windowSizeCallback)
{
window->windowSizeCallback(window->width,
window->windowSizeCallback(window,
window->width,
window->height);
}
}
@ -1252,7 +1254,7 @@ static GLboolean processSingleEvent(void)
// The window's contents was damaged
if (window->windowRefreshCallback)
window->windowRefreshCallback();
window->windowRefreshCallback(window);
break;
}
@ -1697,7 +1699,7 @@ void _glfwPlatformPollEvents(void)
}
if (closeRequested && window->windowCloseCallback)
closeRequested = window->windowCloseCallback();
closeRequested = window->windowCloseCallback(window);
if (closeRequested)
glfwCloseWindow(window);