aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/qt_sdl/Platform.cpp
diff options
context:
space:
mode:
authorArisotura <thetotalworm@gmail.com>2020-12-04 18:28:15 +0100
committerArisotura <thetotalworm@gmail.com>2020-12-04 18:28:15 +0100
commit129018a6626cbec915ef73484c51c9d07af8e8b9 (patch)
tree8e5712bd241319731f7b6ade3363cefe845e3a5e /src/frontend/qt_sdl/Platform.cpp
parent6aad429383015a0ac135b081931ae9c5876a7ad0 (diff)
parent42e083960e52cce31589714dcc7fab8e173efb81 (diff)
Merge remote-tracking branch 'remotes/origin/master' into dsi_camera
Diffstat (limited to 'src/frontend/qt_sdl/Platform.cpp')
-rw-r--r--src/frontend/qt_sdl/Platform.cpp47
1 files changed, 36 insertions, 11 deletions
diff --git a/src/frontend/qt_sdl/Platform.cpp b/src/frontend/qt_sdl/Platform.cpp
index a716feb..d3480e4 100644
--- a/src/frontend/qt_sdl/Platform.cpp
+++ b/src/frontend/qt_sdl/Platform.cpp
@@ -23,6 +23,7 @@
#include <QDir>
#include <QThread>
#include <QSemaphore>
+#include <QMutex>
#include <QOpenGLContext>
#include "Platform.h"
@@ -187,53 +188,77 @@ FILE* OpenLocalFile(const char* path, const char* mode)
return OpenFile(fullpath.toUtf8(), mode, mode[0] != 'w');
}
-void* Thread_Create(void (* func)())
+Thread* Thread_Create(void (* func)())
{
QThread* t = QThread::create(func);
t->start();
- return (void*) t;
+ return (Thread*) t;
}
-void Thread_Free(void* thread)
+void Thread_Free(Thread* thread)
{
QThread* t = (QThread*) thread;
t->terminate();
delete t;
}
-void Thread_Wait(void* thread)
+void Thread_Wait(Thread* thread)
{
((QThread*) thread)->wait();
}
-void* Semaphore_Create()
+Semaphore* Semaphore_Create()
{
- return new QSemaphore();
+ return (Semaphore*)new QSemaphore();
}
-void Semaphore_Free(void* sema)
+void Semaphore_Free(Semaphore* sema)
{
delete (QSemaphore*) sema;
}
-void Semaphore_Reset(void* sema)
+void Semaphore_Reset(Semaphore* sema)
{
QSemaphore* s = (QSemaphore*) sema;
s->acquire(s->available());
}
-void Semaphore_Wait(void* sema)
+void Semaphore_Wait(Semaphore* sema)
{
((QSemaphore*) sema)->acquire();
}
-void Semaphore_Post(void* sema)
+void Semaphore_Post(Semaphore* sema, int count)
{
- ((QSemaphore*) sema)->release();
+ ((QSemaphore*) sema)->release(count);
}
+Mutex* Mutex_Create()
+{
+ return (Mutex*)new QMutex();
+}
+
+void Mutex_Free(Mutex* mutex)
+{
+ delete (QMutex*) mutex;
+}
+
+void Mutex_Lock(Mutex* mutex)
+{
+ ((QMutex*) mutex)->lock();
+}
+
+void Mutex_Unlock(Mutex* mutex)
+{
+ ((QMutex*) mutex)->unlock();
+}
+
+bool Mutex_TryLock(Mutex* mutex)
+{
+ return ((QMutex*) mutex)->try_lock();
+}
void* GL_GetProcAddress(const char* proc)
{