diff --git a/include/GL/glfw3.h b/include/GL/glfw3.h index e902964c..1c8c4e1c 100644 --- a/include/GL/glfw3.h +++ b/include/GL/glfw3.h @@ -500,6 +500,7 @@ typedef struct /* Custom threading model interface */ typedef struct { + int dummy; } GLFWthreadmodel; diff --git a/src/gamma.c b/src/gamma.c index 710dc66e..83847e10 100644 --- a/src/gamma.c +++ b/src/gamma.c @@ -57,7 +57,7 @@ GLFWAPI void glfwSetGammaFormula(float gamma, float blacklevel, float gain) float value = (float) i / ((float) (size - 1)); // Apply gamma - value = pow(value, gamma) * 65535.f + 0.5f; + value = pow(value, 1.f / gamma) * 65535.f + 0.5f; // Apply gain value = gain * (value - 32767.5f) + 32767.5f; diff --git a/src/input.c b/src/input.c index 3fc87735..3e0c1c5c 100644 --- a/src/input.c +++ b/src/input.c @@ -41,14 +41,14 @@ GLFWAPI int glfwGetKey(GLFWwindow handle, int key) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return GLFW_RELEASE; } - _GLFWwindow* window = (_GLFWwindow*) handle; - // Is it a valid key? if (key < 0 || key > GLFW_KEY_LAST) { @@ -74,14 +74,14 @@ GLFWAPI int glfwGetKey(GLFWwindow handle, int key) GLFWAPI int glfwGetMouseButton(GLFWwindow handle, int button) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return GLFW_RELEASE; } - _GLFWwindow* window = (_GLFWwindow*) handle; - // Is it a valid mouse button? if (button < 0 || button > GLFW_MOUSE_BUTTON_LAST) { @@ -106,14 +106,14 @@ GLFWAPI int glfwGetMouseButton(GLFWwindow handle, int button) GLFWAPI void glfwGetMousePos(GLFWwindow handle, int* xpos, int* ypos) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - // Return mouse position if (xpos != NULL) *xpos = window->mousePosX; @@ -130,14 +130,14 @@ GLFWAPI void glfwGetMousePos(GLFWwindow handle, int* xpos, int* ypos) GLFWAPI void glfwSetMousePos(GLFWwindow handle, int xpos, int ypos) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - // Don't do anything if the mouse position did not change if (xpos == window->mousePosX && ypos == window->mousePosY) return; @@ -161,14 +161,14 @@ GLFWAPI void glfwSetMousePos(GLFWwindow handle, int xpos, int ypos) GLFWAPI void glfwGetScrollOffset(GLFWwindow handle, int* xoffset, int* yoffset) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - if (xoffset) *xoffset = window->scrollX; diff --git a/src/win32/win32_time.c b/src/win32/win32_time.c index 7d2be1fe..f3bd173a 100644 --- a/src/win32/win32_time.c +++ b/src/win32/win32_time.c @@ -43,27 +43,16 @@ void _glfwInitTimer(void) { __int64 freq; - // Check if we have a performance counter if (QueryPerformanceFrequency((LARGE_INTEGER*) &freq)) { - // Performance counter is available => use it! _glfwLibrary.Win32.timer.hasPerformanceCounter = GL_TRUE; - - // Counter resolution is 1 / counter frequency _glfwLibrary.Win32.timer.resolution = 1.0 / (double) freq; - - // Set start time for timer QueryPerformanceCounter((LARGE_INTEGER*) &_glfwLibrary.Win32.timer.t0_64); } else { - // No performace counter available => use the tick counter _glfwLibrary.Win32.timer.hasPerformanceCounter = GL_FALSE; - - // Counter resolution is 1 ms - _glfwLibrary.Win32.timer.resolution = 0.001; - - // Set start time for timer + _glfwLibrary.Win32.timer.resolution = 0.001; // winmm resolution is 1 ms _glfwLibrary.Win32.timer.t0_32 = _glfw_timeGetTime(); } } @@ -90,7 +79,6 @@ double _glfwPlatformGetTime(void) else t = (double)(_glfw_timeGetTime() - _glfwLibrary.Win32.timer.t0_32); - // Calculate the current time in seconds return t * _glfwLibrary.Win32.timer.resolution; } diff --git a/src/win32/win32_window.c b/src/win32/win32_window.c index 91f437b0..183f08e7 100644 --- a/src/win32/win32_window.c +++ b/src/win32/win32_window.c @@ -86,8 +86,8 @@ static int setMinMaxAnimations(int enable) //======================================================================== // Focus the window and bring it to the top of the stack -// Due to some nastiness with how Win98/ME/2k/XP handles SetForegroundWindow, -// we have to go through some really bizarre measures to achieve this +// Due to some nastiness with how XP handles SetForegroundWindow we have +// to go through some really bizarre measures to achieve this //======================================================================== static void setForegroundWindow(HWND hWnd) @@ -200,8 +200,6 @@ static _GLFWfbconfig* getFBConfigs(_GLFWwindow* window, unsigned int* found) if (window->WGL.has_WGL_ARB_pixel_format) { // Get pixel format attributes through WGL_ARB_pixel_format - - // Only consider doublebuffered OpenGL pixel formats for windows if (!getPixelFormatAttrib(window, i, WGL_SUPPORT_OPENGL_ARB) || !getPixelFormatAttrib(window, i, WGL_DRAW_TO_WINDOW_ARB) || !getPixelFormatAttrib(window, i, WGL_DOUBLE_BUFFER_ARB)) @@ -209,14 +207,12 @@ static _GLFWfbconfig* getFBConfigs(_GLFWwindow* window, unsigned int* found) continue; } - // Only consider RGBA pixel formats if (getPixelFormatAttrib(window, i, WGL_PIXEL_TYPE_ARB) != WGL_TYPE_RGBA_ARB) { continue; } - // Only consider "hardware-accelerated" pixel formats if (getPixelFormatAttrib(window, i, WGL_ACCELERATION_ARB) == WGL_NO_ACCELERATION_ARB) { @@ -266,7 +262,6 @@ static _GLFWfbconfig* getFBConfigs(_GLFWwindow* window, unsigned int* found) if (!_glfw_DescribePixelFormat(window->WGL.DC, i, sizeof(PIXELFORMATDESCRIPTOR), &pfd)) continue; - // Only consider doublebuffered OpenGL pixel formats for windows if (!(pfd.dwFlags & PFD_DRAW_TO_WINDOW) || !(pfd.dwFlags & PFD_SUPPORT_OPENGL) || !(pfd.dwFlags & PFD_DOUBLEBUFFER)) @@ -274,14 +269,12 @@ static _GLFWfbconfig* getFBConfigs(_GLFWwindow* window, unsigned int* found) continue; } - // Only consider "hardware-accelerated" pixel formats if (!(pfd.dwFlags & PFD_GENERIC_ACCELERATED) && (pfd.dwFlags & PFD_GENERIC_FORMAT)) { continue; } - // Only RGBA pixel formats considered if (pfd.iPixelType != PFD_TYPE_RGBA) continue; diff --git a/src/window.c b/src/window.c index 5ce8cfa0..086b9188 100644 --- a/src/window.c +++ b/src/window.c @@ -365,14 +365,14 @@ GLFWAPI GLFWwindow glfwOpenWindow(int width, int height, GLFWAPI void glfwMakeWindowCurrent(GLFWwindow handle) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - if (_glfwLibrary.currentWindow == window) return; @@ -388,6 +388,7 @@ GLFWAPI void glfwMakeWindowCurrent(GLFWwindow handle) GLFWAPI int glfwIsWindow(GLFWwindow handle) { _GLFWwindow* entry; + _GLFWwindow* window = (_GLFWwindow*) handle; if (!_glfwInitialized) { @@ -395,8 +396,6 @@ GLFWAPI int glfwIsWindow(GLFWwindow handle) return GL_FALSE; } - _GLFWwindow* window = (_GLFWwindow*) handle; - if (window == NULL) return GL_FALSE; @@ -515,14 +514,14 @@ GLFWAPI void glfwOpenWindowHint(int target, int hint) GLFWAPI void glfwCloseWindow(GLFWwindow handle) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - // Allow closing of NULL (to match the behavior of free) if (window == NULL) return; @@ -561,14 +560,14 @@ GLFWAPI void glfwCloseWindow(GLFWwindow handle) GLFWAPI void glfwSetWindowTitle(GLFWwindow handle, const char* title) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - _glfwPlatformSetWindowTitle(window, title); } @@ -579,14 +578,14 @@ GLFWAPI void glfwSetWindowTitle(GLFWwindow handle, const char* title) GLFWAPI void glfwGetWindowSize(GLFWwindow handle, int* width, int* height) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - if (width != NULL) *width = window->width; @@ -601,14 +600,14 @@ GLFWAPI void glfwGetWindowSize(GLFWwindow handle, int* width, int* height) GLFWAPI void glfwSetWindowSize(GLFWwindow handle, int width, int height) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - if (window->iconified) { // TODO: Figure out if this is an error @@ -636,14 +635,14 @@ GLFWAPI void glfwSetWindowSize(GLFWwindow handle, int width, int height) GLFWAPI void glfwGetWindowPos(GLFWwindow handle, int* xpos, int* ypos) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - if (xpos != NULL) *xpos = window->positionX; @@ -658,14 +657,14 @@ GLFWAPI void glfwGetWindowPos(GLFWwindow handle, int* xpos, int* ypos) GLFWAPI void glfwSetWindowPos(GLFWwindow handle, int xpos, int ypos) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - if (window->mode == GLFW_FULLSCREEN || window->iconified) { // TODO: Figure out if this is an error @@ -682,14 +681,14 @@ GLFWAPI void glfwSetWindowPos(GLFWwindow handle, int xpos, int ypos) GLFWAPI void glfwIconifyWindow(GLFWwindow handle) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - if (window->iconified) return; @@ -703,14 +702,14 @@ GLFWAPI void glfwIconifyWindow(GLFWwindow handle) GLFWAPI void glfwRestoreWindow(GLFWwindow handle) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - if (!window->iconified) return; @@ -728,14 +727,14 @@ GLFWAPI void glfwRestoreWindow(GLFWwindow handle) GLFWAPI int glfwGetWindowParam(GLFWwindow handle, int param) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return 0; } - _GLFWwindow* window = (_GLFWwindow*) handle; - switch (param) { case GLFW_ACTIVE: @@ -799,14 +798,14 @@ GLFWAPI int glfwGetWindowParam(GLFWwindow handle, int param) GLFWAPI void glfwSetWindowUserPointer(GLFWwindow handle, void* pointer) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } - _GLFWwindow* window = (_GLFWwindow*) handle; - window->userPointer = pointer; } @@ -817,14 +816,14 @@ GLFWAPI void glfwSetWindowUserPointer(GLFWwindow handle, void* pointer) GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow handle) { + _GLFWwindow* window = (_GLFWwindow*) handle; + if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return NULL; } - _GLFWwindow* window = (_GLFWwindow*) handle; - return window->userPointer; }