-changed a few things about the wait message again,

also fixed some small bug in it
This commit is contained in:
fix94.1 2012-03-17 13:24:26 +00:00
parent 88aea82b45
commit 3331276043
2 changed files with 16 additions and 21 deletions

View File

@ -526,30 +526,25 @@ void CVideo::hideWaitMessage()
{ {
gprintf("Now hide wait message\n"); gprintf("Now hide wait message\n");
m_showWaitMessage = false; m_showWaitMessage = false;
CheckWaitThread(true); CheckWaitThread();
} }
void CVideo::CheckWaitThread(bool force) void CVideo::CheckWaitThread()
{ {
if (force || !m_showingWaitMessages) //&& waitThread != LWP_THREAD_NULL)) if (!m_showingWaitMessages && waitThread != LWP_THREAD_NULL)
{ {
gprintf("Check wait thread start\n"); m_showWaitMessage = false;
if (waitThread != LWP_THREAD_NULL) gprintf("Thread running. Stop it\n");
{
//m_showWaitMessage = false;
gprintf("Thread running. Stop it\n");
if(LWP_ThreadIsSuspended(waitThread)) if(LWP_ThreadIsSuspended(waitThread))
LWP_ResumeThread(waitThread); LWP_ResumeThread(waitThread);
LWP_JoinThread(waitThread, NULL); LWP_JoinThread(waitThread, NULL);
SMART_FREE(waitThreadStack); SMART_FREE(waitThreadStack);
waitThread = LWP_THREAD_NULL; waitThread = LWP_THREAD_NULL;
m_waitMessages.clear(); m_waitMessages.clear();
}
gprintf("Check wait thread end\n");
} }
} }
@ -593,13 +588,13 @@ void CVideo::waitMessage(const safe_vector<STexture> &tex, float delay, bool use
waitMessage(m_waitMessages[0]); waitMessage(m_waitMessages[0]);
else if (m_waitMessages.size() > 1) else if (m_waitMessages.size() > 1)
{ {
CheckWaitThread(true); CheckWaitThread();
m_showWaitMessage = true; m_showWaitMessage = true;
unsigned int stack_size = (unsigned int)32768; //Try 32768? unsigned int stack_size = (unsigned int)32768; //Try 32768?
SMART_FREE(waitThreadStack); //SMART_FREE(waitThreadStack);
waitThreadStack = SmartBuf((unsigned char *)__real_malloc(stack_size), SmartBuf::SRCALL_MALLOC); //waitThreadStack = SmartBuf((unsigned char *)__real_malloc(stack_size), SmartBuf::SRCALL_MALLOC);
waitThreadStack = smartMem2Alloc(stack_size); waitThreadStack = smartMem2Alloc(stack_size);
LWP_CreateThread(&waitThread, (void *(*)(void *))CVideo::_showWaitMessages, (void *)this, waitThreadStack.get(), stack_size, 0); LWP_CreateThread(&waitThread, (void *(*)(void *))CVideo::_showWaitMessages, (void *)this, waitThreadStack.get(), stack_size, LWP_PRIO_IDLE);
} }
} }

View File

@ -68,7 +68,7 @@ public:
void waitMessage(float delay); void waitMessage(float delay);
void waitMessage(const safe_vector<STexture> &tex, float delay, bool useWiiLight = true); void waitMessage(const safe_vector<STexture> &tex, float delay, bool useWiiLight = true);
void waitMessage(const STexture &tex); void waitMessage(const STexture &tex);
void CheckWaitThread(bool force = false); void CheckWaitThread();
s32 TakeScreenshot(const char *); s32 TakeScreenshot(const char *);
void shiftViewPort(float x, float y); void shiftViewPort(float x, float y);
private: private: