EXPORT void CALL UpdateScreen (void) { #ifdef THREADED if (rglSettings.threaded) { rdpPostCommand(); } else #endif { rglUpdateStatus(); rglUpdate(); } }
EXPORT void CALL RomOpen (void) { no_dlists = true; if (!b_fullscreen) rglNextStatus = RGL_STATUS_WINDOWED; else rglNextStatus = RGL_STATUS_FULLSCREEN; #ifdef THREADED if (rglSettings.threaded) { rdpCreateThread(); } else #endif rglUpdateStatus(); }
int rdpThreadFunc(void * dummy) { while (1) { SDL_SemWait(rdpCommandSema); waiting = 1; if (rglNextStatus == RGL_STATUS_CLOSED) rglUpdateStatus(); else rdp_process_list(); if (!rglSettings.async) SDL_SemPost(rdpCommandCompleteSema); if (rglStatus == RGL_STATUS_CLOSED) { rdpThread = NULL; return 0; } } return 0; }
EXPORT void CALL RomClosed (void) { #ifdef THREADED if (rglSettings.threaded) { #ifdef WIN32 fflush(stdout); fflush(stderr); //while (waiting); // temporary hack #endif rglNextStatus = RGL_STATUS_CLOSED; #ifndef WIN32 do rdpPostCommand(); while (rglStatus != RGL_STATUS_CLOSED); #else void rglWin32Windowed(); rglWin32Windowed(); #endif } else #endif { rglNextStatus = RGL_STATUS_CLOSED; rglUpdateStatus(); } }