40 lines
1.0 KiB
C
40 lines
1.0 KiB
C
#include "common.h"
|
|
|
|
#include "nu/nusys.h"
|
|
|
|
extern DECLARE_STACK(nuStackGfxThread, NU_GFX_STACK_SIZE);
|
|
|
|
/* 1B3E0 8008AFE0 */
|
|
void gfxThread(void* arg0) {
|
|
NUScClient gfxClient;
|
|
NUScMsg* mesgType;
|
|
s16 temp_v0;
|
|
|
|
osCreateMesgQueue(&nuGfxMesgQ, nuGfxMesgBuf, NU_GFX_MESGS);
|
|
nuScAddClient(&gfxClient, &nuGfxMesgQ, NU_SC_RETRACE_MSG | NU_SC_PRENMI_MSG);
|
|
|
|
while(1) {
|
|
osRecvMesg(&nuGfxMesgQ, (OSMesg)&mesgType, OS_MESG_BLOCK);
|
|
temp_v0 = *mesgType;
|
|
|
|
switch(temp_v0) {
|
|
case NU_SC_RETRACE_MSG:
|
|
if (nuGfxFunc != NULL) {
|
|
nuGfxFunc(nuGfxTaskSpool);
|
|
}
|
|
break;
|
|
|
|
case NU_SC_PRENMI_MSG:
|
|
if(nuGfxPreNMIFunc != NULL) {
|
|
nuGfxPreNMIFunc();
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void nuGfxThreadStart(void) {
|
|
osCreateThread(&nuGfxThread, 4, gfxThread, NULL, STACK_START(nuStackGfxThread), 0x32);
|
|
osStartThread(&nuGfxThread);
|
|
}
|