Merge remote-tracking branch 'origin/master' into miami

# Conflicts:
#	premake5.lua
#	src/render/Coronas.cpp
#	src/render/Timecycle.cpp
#	src/render/Timecycle.h
This commit is contained in:
Sergeanur 2020-08-10 19:15:51 +03:00
commit 1c1fa25e6c
5 changed files with 44 additions and 7 deletions

View File

@ -77,6 +77,11 @@ workspace "reVC"
"linux-arm-librw_gl3_glfw-oal", "linux-arm-librw_gl3_glfw-oal",
} }
filter { "system:bsd" }
platforms {
"bsd-amd64-librw_gl3_glfw-oal"
}
filter "configurations:Debug" filter "configurations:Debug"
defines { "DEBUG" } defines { "DEBUG" }
@ -90,6 +95,9 @@ workspace "reVC"
filter { "platforms:linux*" } filter { "platforms:linux*" }
system "linux" system "linux"
filter { "platforms:bsd*" }
system "bsd"
filter { "platforms:*x86*" } filter { "platforms:*x86*" }
architecture "x86" architecture "x86"
@ -147,6 +155,11 @@ project "librw"
targetdir "lib/%{cfg.platform}/%{cfg.buildcfg}" targetdir "lib/%{cfg.platform}/%{cfg.buildcfg}"
files { path.join(Librw, "src/*.*") } files { path.join(Librw, "src/*.*") }
files { path.join(Librw, "src/*/*.*") } files { path.join(Librw, "src/*/*.*") }
filter "platforms:bsd*"
includedirs { "/usr/local/include" }
libdirs { "/usr/local/lib" }
filter "platforms:*RW34*" filter "platforms:*RW34*"
flags { "ExcludeFromBuild" } flags { "ExcludeFromBuild" }
filter {} filter {}
@ -260,6 +273,9 @@ project "reVC"
filter "platforms:linux*oal" filter "platforms:linux*oal"
links { "openal", "mpg123", "sndfile", "pthread" } links { "openal", "mpg123", "sndfile", "pthread" }
filter "platforms:bsd*oal"
links { "openal", "mpg123", "sndfile", "pthread" }
if _OPTIONS["with-opus"] then if _OPTIONS["with-opus"] then
filter {} filter {}
links { "libogg" } links { "libogg" }
@ -307,3 +323,8 @@ project "reVC"
filter "platforms:linux*gl3_glfw*" filter "platforms:linux*gl3_glfw*"
links { "GL", "GLEW", "glfw" } links { "GL", "GLEW", "glfw" }
filter "platforms:bsd*gl3_glfw*"
links { "GL", "GLEW", "glfw", "sysinfo" }
includedirs { "/usr/local/include" }
libdirs { "/usr/local/lib" }

View File

@ -587,16 +587,16 @@ cSampleManager::Initialise(void)
} }
nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] = (uintptr)malloc(nSampleBankSize[SAMPLEBANK_MAIN]); nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] = (uintptr)malloc(nSampleBankSize[SAMPLEBANK_MAIN]);
ASSERT(nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] != NULL); ASSERT(nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] != 0);
if ( nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] == NULL ) if ( nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] == 0 )
{ {
Terminate(); Terminate();
return false; return false;
} }
nSampleBankMemoryStartAddress[SAMPLEBANK_PED] = (uintptr)malloc(PED_BLOCKSIZE*MAX_PEDSFX); nSampleBankMemoryStartAddress[SAMPLEBANK_PED] = (uintptr)malloc(PED_BLOCKSIZE*MAX_PEDSFX);
ASSERT(nSampleBankMemoryStartAddress[SAMPLEBANK_PED] != NULL); ASSERT(nSampleBankMemoryStartAddress[SAMPLEBANK_PED] != 0);
} }

View File

@ -150,9 +150,11 @@ CdStreamInit(int32 numChannels)
ASSERT(0); ASSERT(0);
return; return;
} }
#ifdef __linux__
_gdwCdStreamFlags = O_RDONLY | O_NOATIME; _gdwCdStreamFlags = O_RDONLY | O_NOATIME;
#else
_gdwCdStreamFlags = O_RDONLY;
#endif
// People say it's slower // People say it's slower
/* /*
if ( fsInfo.f_bsize <= CDSTREAM_SECTOR_SIZE ) if ( fsInfo.f_bsize <= CDSTREAM_SECTOR_SIZE )
@ -400,9 +402,12 @@ void *CdStreamThread(void *param)
if (gCdStreamThreadStatus == 0){ if (gCdStreamThreadStatus == 0){
gCdStreamThreadStatus = 1; gCdStreamThreadStatus = 1;
#endif #endif
#ifdef __linux__
pid_t tid = syscall(SYS_gettid); pid_t tid = syscall(SYS_gettid);
int ret = setpriority(PRIO_PROCESS, tid, getpriority(PRIO_PROCESS, getpid()) + 1); int ret = setpriority(PRIO_PROCESS, tid, getpriority(PRIO_PROCESS, getpid()) + 1);
} #endif
}
// spurious wakeup or we sent interrupt signal for flushing // spurious wakeup or we sent interrupt signal for flushing
if(pChannel->nSectorsToRead == 0) if(pChannel->nSectorsToRead == 0)

View File

@ -213,7 +213,11 @@ double
psTimer(void) psTimer(void)
{ {
struct timespec start; struct timespec start;
#ifdef __linux__
clock_gettime(CLOCK_MONOTONIC_RAW, &start); clock_gettime(CLOCK_MONOTONIC_RAW, &start);
#else
clock_gettime(CLOCK_MONOTONIC, &start);
#endif
return start.tv_sec * 1000.0 + start.tv_nsec/1000000.0; return start.tv_sec * 1000.0 + start.tv_nsec/1000000.0;
} }
#endif #endif

View File

@ -1863,7 +1863,11 @@ void PlayMovieInWindow(int cmdShow, const char* szFile)
MultiByteToWideChar(CP_ACP, 0, szFile, -1, wFileName, sizeof(wFileName) - 1); MultiByteToWideChar(CP_ACP, 0, szFile, -1, wFileName, sizeof(wFileName) - 1);
// Initialize COM // Initialize COM
#ifdef FIX_BUGS // will also return S_FALSE if it has already been inited in the same thread
CoInitialize(nil);
#else
JIF(CoInitialize(nil)); JIF(CoInitialize(nil));
#endif
// Get the interface for DirectShow's GraphBuilder // Get the interface for DirectShow's GraphBuilder
JIF(CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC, JIF(CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC,
@ -2233,9 +2237,10 @@ WinMain(HINSTANCE instance,
case GS_INIT_INTRO_MPEG: case GS_INIT_INTRO_MPEG:
{ {
#ifndef NO_MOVIES
CloseClip(); CloseClip();
CoUninitialize(); CoUninitialize();
#endif
if ( FrontEndMenuManager.OS_Language == LANG_FRENCH || FrontEndMenuManager.OS_Language == LANG_GERMAN ) if ( FrontEndMenuManager.OS_Language == LANG_FRENCH || FrontEndMenuManager.OS_Language == LANG_GERMAN )
PlayMovieInWindow(cmdShow, "movies\\GTAtitlesGER.mpg"); PlayMovieInWindow(cmdShow, "movies\\GTAtitlesGER.mpg");
@ -2269,8 +2274,10 @@ WinMain(HINSTANCE instance,
case GS_INIT_ONCE: case GS_INIT_ONCE:
{ {
#ifndef NO_MOVIES
CloseClip(); CloseClip();
CoUninitialize(); CoUninitialize();
#endif
#ifdef FIX_BUGS #ifdef FIX_BUGS
// draw one frame because otherwise we'll end up looking at black screen for a while if vsync is on // draw one frame because otherwise we'll end up looking at black screen for a while if vsync is on