WIP SDL3 compatibility
This commit is contained in:
@@ -55,7 +55,7 @@ int getSdlFdEntryIndex(bool unused)
|
||||
// Returns true if the final SDL FD was removed
|
||||
bool removeSdlFd(int fd)
|
||||
{
|
||||
SDL_AtomicLock(&g_FdTableLock);
|
||||
SDL_LockSpinlock(&g_FdTableLock);
|
||||
if (g_SdlDrmMasterFdCount != 0) {
|
||||
// Clear the entry for this fd from the table
|
||||
for (int i = 0; i < MAX_SDL_FD_COUNT; i++) {
|
||||
@@ -67,11 +67,11 @@ bool removeSdlFd(int fd)
|
||||
}
|
||||
|
||||
if (g_SdlDrmMasterFdCount == 0) {
|
||||
SDL_AtomicUnlock(&g_FdTableLock);
|
||||
SDL_UnlockSpinlock(&g_FdTableLock);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
SDL_AtomicUnlock(&g_FdTableLock);
|
||||
SDL_UnlockSpinlock(&g_FdTableLock);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -82,12 +82,12 @@ int takeMasterFromSdlFd()
|
||||
|
||||
// Since all SDL FDs are actually dups of each other
|
||||
// we can take master from any one of them.
|
||||
SDL_AtomicLock(&g_FdTableLock);
|
||||
SDL_LockSpinlock(&g_FdTableLock);
|
||||
int fdIndex = getSdlFdEntryIndex(false);
|
||||
if (fdIndex != -1) {
|
||||
fd = g_SdlDrmMasterFds[fdIndex];
|
||||
}
|
||||
SDL_AtomicUnlock(&g_FdTableLock);
|
||||
SDL_UnlockSpinlock(&g_FdTableLock);
|
||||
|
||||
if (fd >= 0 && drmDropMaster(fd) == 0) {
|
||||
return fd;
|
||||
@@ -126,12 +126,12 @@ int openHook(const char *funcname, const char *pathname, int flags, va_list va)
|
||||
int allocatedFdIndex;
|
||||
|
||||
// It is our device. Time to do the magic!
|
||||
SDL_AtomicLock(&g_FdTableLock);
|
||||
SDL_LockSpinlock(&g_FdTableLock);
|
||||
|
||||
// Get a free index for us to put the new entry
|
||||
freeFdIndex = getSdlFdEntryIndex(true);
|
||||
if (freeFdIndex < 0) {
|
||||
SDL_AtomicUnlock(&g_FdTableLock);
|
||||
SDL_UnlockSpinlock(&g_FdTableLock);
|
||||
SDL_assert(freeFdIndex >= 0);
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
|
||||
"No unused SDL FD table entries!");
|
||||
@@ -151,7 +151,7 @@ int openHook(const char *funcname, const char *pathname, int flags, va_list va)
|
||||
else {
|
||||
// Drop master on Qt's FD so we can pick it up for SDL.
|
||||
if (drmDropMaster(g_QtDrmMasterFd) < 0) {
|
||||
SDL_AtomicUnlock(&g_FdTableLock);
|
||||
SDL_UnlockSpinlock(&g_FdTableLock);
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
|
||||
"Failed to drop master on Qt DRM FD: %d",
|
||||
errno);
|
||||
@@ -182,7 +182,7 @@ int openHook(const char *funcname, const char *pathname, int flags, va_list va)
|
||||
g_SdlDrmMasterFdCount++;
|
||||
}
|
||||
|
||||
SDL_AtomicUnlock(&g_FdTableLock);
|
||||
SDL_UnlockSpinlock(&g_FdTableLock);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user