]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - thread_sdl.c
Fix mouse spinning bug in wgl client when the game window is moved left or above...
[xonotic/darkplaces.git] / thread_sdl.c
index 9df9ffc9ebfeac7c37677bb70717c717f3e63be3..4f58f71d386f95863d6a6752cee0ea133f91776d 100644 (file)
@@ -1,7 +1,7 @@
-#include "quakedef.h"
-#include "thread.h"
 #include <SDL.h>
 #include <SDL_thread.h>
+#include "quakedef.h"
+#include "thread.h"
 
 int Thread_Init(void)
 {
@@ -100,7 +100,11 @@ int _Thread_CondWait(void *cond, void *mutex, const char *filename, int fileline
 
 void *_Thread_CreateThread(int (*fn)(void *), void *data, const char *filename, int fileline)
 {
+#if SDL_MAJOR_VERSION == 1
        void *thread = (void *)SDL_CreateThread(fn, data);
+#else
+       void *thread = (void *)SDL_CreateThread(fn, filename, data);
+#endif
 #ifdef THREADDEBUG
        Sys_PrintfToTerminal("%p thread create %s:%i\n"   , thread, filename, fileline);
 #endif
@@ -128,7 +132,7 @@ typedef struct {
 
 void *_Thread_CreateBarrier(unsigned int count, const char *filename, int fileline)
 {
-       barrier_t *b = Z_Malloc(sizeof(barrier_t));
+       volatile barrier_t *b = (volatile barrier_t *) Z_Malloc(sizeof(barrier_t));
 #ifdef THREADDEBUG
        Sys_PrintfToTerminal("%p barrier create(%d) %s:%i\n", b, count, filename, fileline);
 #endif
@@ -141,7 +145,7 @@ void *_Thread_CreateBarrier(unsigned int count, const char *filename, int fileli
 
 void _Thread_DestroyBarrier(void *barrier, const char *filename, int fileline)
 {
-       barrier_t *b = (barrier_t *) barrier;
+       volatile barrier_t *b = (volatile barrier_t *) barrier;
 #ifdef THREADDEBUG
        Sys_PrintfToTerminal("%p barrier destroy %s:%i\n", b, filename, fileline);
 #endif
@@ -151,7 +155,7 @@ void _Thread_DestroyBarrier(void *barrier, const char *filename, int fileline)
 
 void _Thread_WaitBarrier(void *barrier, const char *filename, int fileline)
 {
-       barrier_t *b = (barrier_t *) barrier;
+       volatile barrier_t *b = (volatile barrier_t *) barrier;
 #ifdef THREADDEBUG
        Sys_PrintfToTerminal("%p barrier wait %s:%i\n", b, filename, fileline);
 #endif
@@ -167,4 +171,3 @@ void _Thread_WaitBarrier(void *barrier, const char *filename, int fileline)
        }
        Thread_UnlockMutex(b->mutex);
 }
-