1//======================================================================== 2// GLFW 3.5 Win32 - www.glfw.org 3//------------------------------------------------------------------------ 4// Copyright (c) 2002-2006 Marcus Geelnard 5// Copyright (c) 2006-2017 Camilla Löwy <elmindreda@glfw.org> 6// 7// This software is provided 'as-is', without any express or implied 8// warranty. In no event will the authors be held liable for any damages 9// arising from the use of this software. 10// 11// Permission is granted to anyone to use this software for any purpose, 12// including commercial applications, and to alter it and redistribute it 13// freely, subject to the following restrictions: 14// 15// 1. The origin of this software must not be misrepresented; you must not 16// claim that you wrote the original software. If you use this software 17// in a product, an acknowledgment in the product documentation would 18// be appreciated but is not required. 19// 20// 2. Altered source versions must be plainly marked as such, and must not 21// be misrepresented as being the original software. 22// 23// 3. This notice may not be removed or altered from any source 24// distribution. 25// 26//======================================================================== 27 28// This is a workaround for the fact that glfw3.h needs to export APIENTRY (for 29// example to allow applications to correctly declare a GL_KHR_debug callback) 30// but windows.h assumes no one will define APIENTRY before it does 31#undef APIENTRY 32 33#include <windows.h> 34 35#define GLFW_WIN32_TLS_STATE _GLFWtlsWin32 win32; 36#define GLFW_WIN32_MUTEX_STATE _GLFWmutexWin32 win32; 37 38// Win32-specific thread local storage data 39// 40typedef struct _GLFWtlsWin32 41{ 42 GLFWbool allocated; 43 DWORD index; 44} _GLFWtlsWin32; 45 46// Win32-specific mutex data 47// 48typedef struct _GLFWmutexWin32 49{ 50 GLFWbool allocated; 51 CRITICAL_SECTION section; 52} _GLFWmutexWin32; 53 54