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
|
#ifndef UNICODE
|
||||||
#define UNICODE 1
|
#define UNICODE 1
|
||||||
#endif
|
#endif
|
||||||
#undef WINVER
|
#undef _WIN32_WINNT
|
||||||
#define WINVER 0x500 /* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices() */
|
#define _WIN32_WINNT 0x500 /* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices() */
|
||||||
|
|
||||||
#include <windows.h>
|
#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_CreateMutex(void)
|
||||||
{
|
{
|
||||||
SDL_mutex *mutex;
|
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 */
|
/* Allocate mutex memory */
|
||||||
mutex = (SDL_mutex *) SDL_malloc(sizeof(*mutex));
|
mutex = (SDL_mutex *) SDL_malloc(sizeof(*mutex));
|
||||||
if (mutex) {
|
if (mutex) {
|
||||||
/* Initialize */
|
/* Initialize */
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
InitializeCriticalSection(&mutex->cs);
|
InitializeCriticalSection(&mutex->cs);
|
||||||
|
#else
|
||||||
/* On SMP systems, a non-zero spin count generally helps performance */
|
/* 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 {
|
} else {
|
||||||
SDL_OutOfMemory();
|
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
|
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_config.h"
|
||||||
|
|
||||||
#include "SDL_windowsvideo.h"
|
#include "SDL_windowsvideo.h"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue