23 typedef void * (*funcType)(void);
45 static char *workingDirectoryResult = NULL;
48 vuoGetWorkingDirectoryType
vuoGetWorkingDirectory = (vuoGetWorkingDirectoryType) dlsym(RTLD_SELF,
"vuoGetWorkingDirectory");
56 free(compositionState);
61 char currentWorkingDirectory[PATH_MAX+1];
62 getcwd(currentWorkingDirectory, PATH_MAX+1);
63 workingDirectoryResult = strdup(currentWorkingDirectory);
66 return workingDirectoryResult;
72 vuoGetRunnerPidType
vuoGetRunnerPid = (vuoGetRunnerPidType) dlsym(RTLD_SELF,
"vuoGetRunnerPid");
74 vuoGetRunnerPid = (vuoGetRunnerPidType) dlsym(RTLD_DEFAULT,
"vuoGetRunnerPid");
78 free(compositionState);
85 vuoStopCompositionType
vuoStopComposition = (vuoStopCompositionType) dlsym(RTLD_SELF,
"vuoStopComposition");
87 vuoStopComposition = (vuoStopCompositionType) dlsym(RTLD_DEFAULT,
"vuoStopComposition");
91 free(compositionState);
97 vuoStopCompositionType
vuoStopComposition = (vuoStopCompositionType) dlsym(RTLD_SELF,
"vuoStopComposition");
99 vuoStopComposition = (vuoStopCompositionType) dlsym(RTLD_DEFAULT,
"vuoStopComposition");
107 vuoAddCompositionFiniCallbackType
vuoAddCompositionFiniCallback = (vuoAddCompositionFiniCallbackType) dlsym(RTLD_SELF,
"vuoAddCompositionFiniCallback");
115 free(compositionState);
122 vuoDisableTerminationType
vuoDisableTermination = (vuoDisableTerminationType) dlsym(RTLD_SELF,
"vuoDisableTermination");
128 free(compositionState);
134 vuoEnableTerminationType
vuoEnableTermination = (vuoEnableTerminationType) dlsym(RTLD_SELF,
"vuoEnableTermination");
140 free(compositionState);
145 typedef bool (*vuoShouldShowSplashWindowType)(void);
146 vuoShouldShowSplashWindowType vuoShouldShowSplashWindow = (vuoShouldShowSplashWindowType) dlsym(RTLD_DEFAULT,
"vuoShouldShowSplashWindow");
147 if (!vuoShouldShowSplashWindow)
153 return vuoShouldShowSplashWindow();
162 uint32_t eax = 7, ebx, ecx = 0, edx;
163 __asm__ (
"cpuid" :
"+b" (ebx),
"+a" (eax),
"+c" (ecx),
"=d" (edx) );
164 uint32_t avx2_mask = 1 << 5;
165 return (ebx & avx2_mask) == avx2_mask;