Our minimum Windows version is Windows 2000, so it's okay to directly call InitializeCriticalSectionAndSpinCount()..
This commit is contained in:
parent
58d7fc4732
commit
baf813b8c1
3 changed files with 6 additions and 25 deletions
4
src/core/windows/SDL_windows.h
Normal file → Executable file
4
src/core/windows/SDL_windows.h
Normal file → Executable file
|
@ -30,8 +30,8 @@
|
|||
#ifndef UNICODE
|
||||
#define UNICODE 1
|
||||
#endif
|
||||
#undef WINVER
|
||||
#define WINVER 0x500 /* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices() */
|
||||
#undef _WIN32_WINNT
|
||||
#define _WIN32_WINNT 0x500 /* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices() */
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
|
|
20
src/thread/windows/SDL_sysmutex.c
Normal file → Executable file
20
src/thread/windows/SDL_sysmutex.c
Normal file → Executable file
|
@ -38,29 +38,17 @@ SDL_mutex *
|
|||
SDL_CreateMutex(void)
|
||||
{
|
||||
SDL_mutex *mutex;
|
||||
static DWORD (WINAPI*pf_SetCriticalSectionSpinCount)(LPCRITICAL_SECTION, DWORD) = NULL;
|
||||
static HMODULE kernel32 = NULL;
|
||||
|
||||
/* One time logic - detect WinNT */
|
||||
if(kernel32 == NULL) {
|
||||
kernel32 = GetModuleHandleA("kernel32.dll");
|
||||
if(kernel32) {
|
||||
/* Attempt to resolve symbol -- Win9x gets NULL */
|
||||
pf_SetCriticalSectionSpinCount = (DWORD (WINAPI*)(LPCRITICAL_SECTION, DWORD))GetProcAddress(kernel32, "SetCriticalSectionSpinCount");
|
||||
}
|
||||
else
|
||||
kernel32 = (HMODULE)0x01; /* don't try to init again */
|
||||
}
|
||||
|
||||
|
||||
/* Allocate mutex memory */
|
||||
mutex = (SDL_mutex *) SDL_malloc(sizeof(*mutex));
|
||||
if (mutex) {
|
||||
/* Initialize */
|
||||
#ifdef _WIN32_WCE
|
||||
InitializeCriticalSection(&mutex->cs);
|
||||
|
||||
#else
|
||||
/* On SMP systems, a non-zero spin count generally helps performance */
|
||||
if(pf_SetCriticalSectionSpinCount) pf_SetCriticalSectionSpinCount(&mutex->cs, 2000);
|
||||
InitializeCriticalSectionAndSpinCount(&mutex->cs, 2000);
|
||||
#endif
|
||||
} else {
|
||||
SDL_OutOfMemory();
|
||||
}
|
||||
|
|
7
src/video/windows/SDL_windowsmouse.c
Normal file → Executable file
7
src/video/windows/SDL_windowsmouse.c
Normal file → Executable file
|
@ -20,13 +20,6 @@
|
|||
slouken@libsdl.org
|
||||
*/
|
||||
|
||||
/* we need to define it, so that raw input is included*/
|
||||
|
||||
#if (_WIN32_WINNT < 0x0501)
|
||||
#undef _WIN32_WINNT
|
||||
#define _WIN32_WINNT 0x0501
|
||||
#endif
|
||||
|
||||
#include "SDL_config.h"
|
||||
|
||||
#include "SDL_windowsvideo.h"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue