From 6ac58da26e707ec50bdce04d4f497b5b1225b1a6 Mon Sep 17 00:00:00 2001 From: Camilla Berglund Date: Wed, 12 Sep 2012 21:18:37 +0200 Subject: [PATCH 1/5] Narrowed criteria for non-standard inclusion. --- src/fullscreen.c | 2 +- src/window.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fullscreen.c b/src/fullscreen.c index 4372d153..f59046d8 100644 --- a/src/fullscreen.c +++ b/src/fullscreen.c @@ -32,7 +32,7 @@ #include "internal.h" #include -#if _WIN32 +#if defined(_MSC_VER) #include #endif diff --git a/src/window.c b/src/window.c index b46065a7..817691de 100644 --- a/src/window.c +++ b/src/window.c @@ -33,7 +33,7 @@ #include #include -#if _WIN32 +#if defined(_MSC_VER) #include #endif From c4d5da00901b3cbc0d0a884628204de1495cf19b Mon Sep 17 00:00:00 2001 From: Camilla Berglund Date: Wed, 12 Sep 2012 21:23:04 +0200 Subject: [PATCH 2/5] Moved DllMain into Win32 init module. --- src/CMakeLists.txt | 2 +- src/win32_dllmain.c | 49 --------------------------------------------- src/win32_init.c | 12 +++++++++++ 3 files changed, 13 insertions(+), 50 deletions(-) delete mode 100644 src/win32_dllmain.c diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ec5508c2..8a7bdec3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -22,7 +22,7 @@ elseif (_GLFW_WIN32_WGL) set(glfw_HEADERS ${common_HEADERS} win32_platform.h) set(glfw_SOURCES ${common_SOURCES} win32_clipboard.c win32_fullscreen.c win32_gamma.c win32_init.c win32_input.c win32_joystick.c - win32_opengl.c win32_time.c win32_window.c win32_dllmain.c) + win32_opengl.c win32_time.c win32_window.c) if (GLFW_NATIVE_API) list(APPEND glfw_SOURCES win32_native.c) diff --git a/src/win32_dllmain.c b/src/win32_dllmain.c deleted file mode 100644 index 98f9ab2a..00000000 --- a/src/win32_dllmain.c +++ /dev/null @@ -1,49 +0,0 @@ -//======================================================================== -// GLFW - An OpenGL library -// Platform: Win32 -// API version: 3.0 -// WWW: http://www.glfw.org/ -//------------------------------------------------------------------------ -// Copyright (c) 2002-2006 Marcus Geelnard -// Copyright (c) 2006-2010 Camilla Berglund -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would -// be appreciated but is not required. -// -// 2. Altered source versions must be plainly marked as such, and must not -// be misrepresented as being the original software. -// -// 3. This notice may not be removed or altered from any source -// distribution. -// -//======================================================================== - -#include "internal.h" - - -#if defined(_GLFW_BUILD_DLL) - -//======================================================================== -// GLFW DLL entry point -//======================================================================== - -BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) -{ - // NOTE: Some compilers complains about instance and x never being used - - // never mind that (we don't want to use them)! - - return TRUE; -} - -#endif // _GLFW_BUILD_DLL - diff --git a/src/win32_init.c b/src/win32_init.c index 41444b97..21de415b 100644 --- a/src/win32_init.c +++ b/src/win32_init.c @@ -39,6 +39,18 @@ #endif // __BORLANDC__ +//======================================================================== +// GLFW DLL entry point +//======================================================================== + +#if defined(_GLFW_BUILD_DLL) +BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) +{ + return TRUE; +} +#endif // _GLFW_BUILD_DLL + + //======================================================================== // Load necessary libraries (DLLs) //======================================================================== From 1d6d6bc3c6ae75a25c2f6aa5281f2b2c1138297f Mon Sep 17 00:00:00 2001 From: Camilla Berglund Date: Wed, 12 Sep 2012 21:25:52 +0200 Subject: [PATCH 3/5] Moved display closing to after GL terminate. --- src/x11_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/x11_init.c b/src/x11_init.c index 666866de..60a0add3 100644 --- a/src/x11_init.c +++ b/src/x11_init.c @@ -672,12 +672,12 @@ int _glfwPlatformTerminate(void) _glfwTerminateGammaRamp(); - terminateDisplay(); - _glfwTerminateJoysticks(); _glfwTerminateOpenGL(); + terminateDisplay(); + // Free clipboard memory if (_glfwLibrary.X11.selection.string) free(_glfwLibrary.X11.selection.string); From 18392837ac85261bd9448d8548173c49f4fc1514 Mon Sep 17 00:00:00 2001 From: Camilla Berglund Date: Wed, 12 Sep 2012 21:34:23 +0200 Subject: [PATCH 4/5] Formatting. --- src/gamma.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/gamma.c b/src/gamma.c index 21940b0e..eed0b66d 100644 --- a/src/gamma.c +++ b/src/gamma.c @@ -61,18 +61,15 @@ GLFWAPI void glfwSetGamma(float gamma) for (i = 0; i < size; i++) { - float value = (float) i / ((float) (size - 1)); + float value; - // Apply gamma + // Calculate intensity + value = (float) i / (float) (size - 1); + // Apply gamma curve value = (float) pow(value, 1.f / gamma) * 65535.f + 0.5f; + // Clamp to value range + value = (float) fmax(fmin(value, 65535.f), 0.f); - // Clamp values - if (value < 0.f) - value = 0.f; - else if (value > 65535.f) - value = 65535.f; - - // Set the gamma ramp values ramp.red[i] = (unsigned short) value; ramp.green[i] = (unsigned short) value; ramp.blue[i] = (unsigned short) value; From 4408d2134c7b2800eef8f1a29bf5331da4e8e6e4 Mon Sep 17 00:00:00 2001 From: Camilla Berglund Date: Wed, 12 Sep 2012 21:37:36 +0200 Subject: [PATCH 5/5] Added use of standard lParam macros. --- src/win32_window.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/win32_window.c b/src/win32_window.c index 13096073..735f9b97 100644 --- a/src/win32_window.c +++ b/src/win32_window.c @@ -33,6 +33,7 @@ #include #include #include +#include //======================================================================== // Hide mouse cursor @@ -559,8 +560,8 @@ static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg, int newCursorX, newCursorY; // Get signed (!) cursor position - newCursorX = (int)((short)LOWORD(lParam)); - newCursorY = (int)((short)HIWORD(lParam)); + newCursorX = GET_X_LPARAM(lParam); + newCursorY = GET_Y_LPARAM(lParam); if (newCursorX != window->Win32.oldCursorX || newCursorY != window->Win32.oldCursorY)