while(running)
{
sceGuClearColor(0xff554433);
sceGuClearDepth(0);
sceGuClear(GU_COLOR_BUFFER_BIT|GU_DEPTH_BUFFER_BIT);
switch(sceUtilityNetconfGetStatus())
{
case PSP_UTILITY_DIALOG_NONE:
break;
case PSP_UTILITY_DIALOG_VISIBLE:
sceUtilityNetconfUpdate(1);
break;
case PSP_UTILITY_DIALOG_QUIT:
sceUtilityNetconfShutdownStart();
break;
case PSP_UTILITY_DIALOG_FINISHED:
done = 1;
break;
default:
break;
}
sceDisplayWaitVblankStart();
sceGuSwapBuffers();
if(done)
break;
}
But still, the dialog is showing with lots of flicker, and the buffers dont seem to be clearing.
I don't really know how sceUtilityNetconfInitStart works, but If it starts another thread to make and draw the dialog, Is possible this new thread is drawing faster than my own and thus the flicker?
Unfortunately, seems like removing a more larger renderization process to a smaller, makes the flicker happen. I would appreciate some know how about the dialog rendering, because I think this is a matter of syncing the render with my own render code.
I imagine the dialogs are mostly all the same. You could look at the rendering Doom for the PSP does for the OSK. There's also a PSP Dialog Library - pspdlg1.zip. That does the regular PSP dialogs, so I guess whatever it does is probably the minimum needed.