浏览代码

Merge branch 'master' into multi-monitor

Conflicts:
	src/CMakeLists.txt
	src/fullscreen.c
Camilla Berglund 13 年之前
父节点
当前提交
1071966d55
共有 8 个文件被更改,包括 26 次插入65 次删除
  1. 1 1
      src/CMakeLists.txt
  2. 6 9
      src/gamma.c
  3. 1 1
      src/monitor.c
  4. 0 49
      src/win32_dllmain.c
  5. 12 0
      src/win32_init.c
  6. 3 2
      src/win32_window.c
  7. 1 1
      src/window.c
  8. 2 2
      src/x11_init.c

+ 1 - 1
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)

+ 6 - 9
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;

+ 1 - 1
src/monitor.c

@@ -32,7 +32,7 @@
 
 #include <string.h>
 #include <stdlib.h>
-#if _WIN32
+#if defined(_MSC_VER)
  #include <malloc.h>
 #endif
 

+ 0 - 49
src/win32_dllmain.c

@@ -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 <[email protected]>
-//
-// 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
-

+ 12 - 0
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)
 //========================================================================

+ 3 - 2
src/win32_window.c

@@ -32,6 +32,7 @@
 
 #include <stdlib.h>
 #include <malloc.h>
+#include <windowsx.h>
 
 //========================================================================
 // 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)

+ 1 - 1
src/window.c

@@ -33,7 +33,7 @@
 
 #include <string.h>
 #include <stdlib.h>
-#if _WIN32
+#if defined(_MSC_VER)
  #include <malloc.h>
 #endif
 

+ 2 - 2
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);