diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f2b0a538..cb5eec62 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_gamma.c win32_init.c win32_input.c win32_joystick.c win32_monitor.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/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; diff --git a/src/monitor.c b/src/monitor.c index b53da2db..6cab5ae4 100644 --- a/src/monitor.c +++ b/src/monitor.c @@ -32,7 +32,7 @@ #include #include -#if _WIN32 +#if defined(_MSC_VER) #include #endif 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) //======================================================================== diff --git a/src/win32_window.c b/src/win32_window.c index 9b84b9be..907d3242 100644 --- a/src/win32_window.c +++ b/src/win32_window.c @@ -32,6 +32,7 @@ #include #include +#include //======================================================================== // Hide mouse cursor @@ -558,8 +559,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) 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 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);