void * SplashScreenThread(void *param) { Splash *splash = (Splash *) param; // pthread_key_t key; // pthread_key_create(&key, SplashPThreadDestructor); // pthread_setspecific(key, splash); SplashLock(splash); pipe(splash->controlpipe); fcntl(splash->controlpipe[0], F_SETFL, fcntl(splash->controlpipe[0], F_GETFL, 0) | O_NONBLOCK); splash->time = SplashTime(); SplashCreateWindow(splash); fflush(stdout); if (splash->window) { SplashRemoveDecoration(splash); XStoreName(splash->display, splash->window, "Java"); XMapRaised(splash->display, splash->window); SplashUpdateShape(splash); SplashRedrawWindow(splash); SplashEventLoop(splash); } SplashUnlock(splash); SplashDone(splash); splash->isVisible=-1; return 0; }
DWORD WINAPI SplashScreenThread(LPVOID param) { Splash *splash = (Splash *) param; splash->currentFrame = 0; SplashLock(splash); splash->time = SplashTime(); splash->hWnd = SplashCreateWindow(splash); if (splash->hWnd) { SplashRedrawWindow(splash); SplashUnlock(splash); SplashMessagePump(); SplashLock(splash); } SplashDone(splash); splash->isVisible = -1; SplashUnlock(splash); return 0; }