本文整理汇总了C++中VIDEO_WaitVSync函数的典型用法代码示例。如果您正苦于以下问题:C++ VIDEO_WaitVSync函数的具体用法?C++ VIDEO_WaitVSync怎么用?C++ VIDEO_WaitVSync使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了VIDEO_WaitVSync函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: grlib_Init
void grlib_Init (void)
{
memset (&grlibSettings, 0, sizeof (s_grlibSettings));
grlibSettings.wiiswitch_poweroff = false;
grlibSettings.wiiswitch_reset = false;
// Initialise the Wiimotes & Gamecube
PAD_Init();
WPAD_Init();
WPAD_SetDataFormat(WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR);
VIDEO_Init();
VIDEO_SetBlack(true); // Disable video output during initialisation
VIDEO_WaitVSync();
VIDEO_WaitVSync();
GRRLIB_Init(1,0);
WPAD_SetVRes(0, 640, 480);
WPAD_SetPowerButtonCallback( wmpower_cb );
SYS_SetPowerCallback (power_cb);
SYS_SetResetCallback (reset_cb);
redrawTex = GRRLIB_CreateEmptyTexture (rmode->fbWidth, rmode->efbHeight);
popPushTex = GRRLIB_CreateEmptyTexture (rmode->fbWidth, rmode->efbHeight);
grlibSettings.RedrawCallback = NULL;
grlibSettings.pointer[0] = NULL;
grlibSettings.pointer[1] = NULL;
grlibSettings.pointer[2] = NULL;
grlibSettings.pointer[3] = NULL;
}
示例2: InitVideo
void
InitVideo ()
{
VIDEO_Init();
vmode = VIDEO_GetPreferredMode(NULL); // get default video mode
//Widescreen loading image fix...
vmode->viWidth = 678;
vmode->viXOrigin = (VI_MAX_WIDTH_NTSC - 678) / 2;
VIDEO_Configure (vmode);
// Allocate the video buffers
xfb[0] = (u32 *) MEM_K0_TO_K1 (SYS_AllocateFramebuffer (vmode));
xfb[1] = (u32 *) MEM_K0_TO_K1 (SYS_AllocateFramebuffer (vmode));
// A console is always useful while debugging
console_init (xfb[0], 20, 64, vmode->fbWidth, vmode->xfbHeight, vmode->fbWidth * 2);
// Clear framebuffers etc.
VIDEO_ClearFrameBuffer (vmode, xfb[0], COLOR_BLACK);
VIDEO_ClearFrameBuffer (vmode, xfb[1], COLOR_BLACK);
VIDEO_SetNextFramebuffer (xfb[0]);
VIDEO_SetBlack (FALSE);
VIDEO_Flush ();
VIDEO_WaitVSync ();
if (vmode->viTVMode & VI_NON_INTERLACE)
VIDEO_WaitVSync ();
StartGX();
ResetVideo_Menu();
// Finally, the video is up and ready for use :)
}
示例3: load_dol_image
u32 load_dol_image(void *dolstart) {
u32 i;
if (dolstart) {
dolfile = (dolheader *) dolstart;
for (i = 0; i < 7; i++) {
if ((!dolfile->text_size[i]) || (dolfile->text_start[i] < 0x100)) continue;
VIDEO_WaitVSync();
ICInvalidateRange ((void *) dolfile->text_start[i],dolfile->text_size[i]);
memmove ((void *) dolfile->text_start[i],dolstart+dolfile->text_pos[i],dolfile->text_size[i]);
}
for(i = 0; i < 11; i++) {
if ((!dolfile->data_size[i]) || (dolfile->data_start[i] < 0x100)) continue;
VIDEO_WaitVSync();
memmove ((void *) dolfile->data_start[i],dolstart+dolfile->data_pos[i],dolfile->data_size[i]);
DCFlushRangeNoSync ((void *) dolfile->data_start[i],dolfile->data_size[i]);
}
/*
memset ((void *) dolfile->bss_start, 0, dolfile->bss_size);
DCFlushRange((void *) dolfile->bss_start, dolfile->bss_size);
*/
return dolfile->entry_point;
}
return 0;
}
示例4: InitVideo
void InitVideo (void)
{
// Initialise the video system
VIDEO_Init();
// Obtain the preferred video mode from the system
// This will correspond to the settings in the Wii menu
rmode = VIDEO_GetPreferredMode(NULL);
// Allocate memory for the display in the uncached region
xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
VIDEO_Configure(rmode);
VIDEO_SetNextFramebuffer(xfb);
VIDEO_SetBlack(FALSE);
VIDEO_Flush();
VIDEO_WaitVSync();
if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();
int x, y, w, h;
x = 20;
y = 32;
w = rmode->fbWidth - (32);
h = rmode->xfbHeight - (48);
CON_InitEx(rmode, x, y, w, h);
VIDEO_ClearFrameBuffer(rmode, xfb, COLOR_BLACK);
CON_InitEx(rmode, x, y, w, h);
// Set console text color
printf("\x1b[%u;%um", 37, false);
printf("\x1b[%u;%um", 40, false);
}
示例5: show_info
void show_info() {
int page = 0;
while (PAD_ButtonsHeld(0) & PAD_BUTTON_A){ VIDEO_WaitVSync (); }
while(1) {
info_draw_page(page);
while (!((PAD_ButtonsHeld(0) & PAD_BUTTON_RIGHT)
|| (PAD_ButtonsHeld(0) & PAD_BUTTON_LEFT)
|| (PAD_ButtonsHeld(0) & PAD_BUTTON_B)
|| (PAD_ButtonsHeld(0) & PAD_BUTTON_A)
|| (PAD_ButtonsHeld(0) & PAD_TRIGGER_R)
|| (PAD_ButtonsHeld(0) & PAD_TRIGGER_L)))
{ VIDEO_WaitVSync (); }
u16 btns = PAD_ButtonsHeld(0);
if(((btns & PAD_BUTTON_RIGHT) || (PAD_ButtonsHeld(0) & PAD_TRIGGER_R)) && page < 2)
page++;
if(((btns & PAD_BUTTON_LEFT) || (PAD_ButtonsHeld(0) & PAD_TRIGGER_L)) && page > 0)
page--;
if((btns & PAD_BUTTON_A) || (btns & PAD_BUTTON_B))
break;
while ((PAD_ButtonsHeld(0) & PAD_BUTTON_RIGHT)
|| (PAD_ButtonsHeld(0) & PAD_BUTTON_LEFT)
|| (PAD_ButtonsHeld(0) & PAD_BUTTON_B)
|| (PAD_ButtonsHeld(0) & PAD_BUTTON_A)
|| (PAD_ButtonsHeld(0) & PAD_TRIGGER_R)
|| (PAD_ButtonsHeld(0) & PAD_TRIGGER_L))
{ VIDEO_WaitVSync (); }
}
while (PAD_ButtonsHeld(0) & PAD_BUTTON_A){ VIDEO_WaitVSync (); }
}
示例6: rvlInitFat
void rvlInitFat()
{
// temporary init video, pad, console
VIDEO_Init();
WPAD_Init();
rmode = VIDEO_GetPreferredMode(NULL);
xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
CON_Init(xfb, 20, 20, rmode->fbWidth, rmode->xfbHeight, rmode->fbWidth * VI_DISPLAY_PIX_SZ);
VIDEO_Configure(rmode);
VIDEO_SetNextFramebuffer(xfb);
VIDEO_SetBlack(FALSE);
VIDEO_Flush();
VIDEO_WaitVSync();
if(rmode->viTVMode & VI_NON_INTERLACE) VIDEO_WaitVSync();
// loop until either Home has been pressed, or an SD card has been found
while(!fatInitDefault()) {
WPAD_ScanPads();
printf("\x1b[2;0HFAT initialization error!");
printf("\x1b[3;0HPlease insert a SD card to continue or press Home to exit!");
u32 pressed = WPAD_ButtonsDown(0);
if(pressed & WPAD_BUTTON_HOME) {
printf("\x1b[5;0HExiting...");
exit(0);
}
VIDEO_WaitVSync();
}
printf("\x1b[2;0H");
// set the app path
strcpy(program.apppath, "sd:/apps/wii_azunyan8");
}
示例7: SetGCVideoMode
static void SetGCVideoMode (void)
{
syssram *sram;
sram = __SYS_LockSram();
if(VIDEO_HaveComponentCable())
sram->flags |= 0x80; //set progressive flag
else
sram->flags &= 0x7F; //clear progressive flag
if (config.dmlvideomode == DMLVIDEOMODE_NTSC)
{
rmode = &TVNtsc480IntDf;
sram->flags &= 0xFE; // Clear bit 0 to set the video mode to NTSC
sram->ntd &= 0xBF; //clear pal60 flag
}
else
{
rmode = &TVPal528IntDf;
sram->flags |= 0x01; // Set bit 0 to set the video mode to PAL
sram->ntd |= 0x40; //set pal60 flag
}
__SYS_UnlockSram(1); // 1 -> write changes
while(!__SYS_SyncSram());
// TVPal528IntDf
u32 *sfb;
static GXRModeObj *rmode;
//config.dmlvideomode = DMLVIDEOMODE_PAL;
if (config.dmlvideomode == DMLVIDEOMODE_PAL)
{
rmode = &TVPal528IntDf;
*(u32*)0x800000CC = VI_PAL;
}
else
{
rmode = &TVNtsc480IntDf;
*(u32*)0x800000CC = VI_NTSC;
}
VIDEO_SetBlack(TRUE);
VIDEO_Configure(rmode);
sfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
VIDEO_ClearFrameBuffer(rmode, sfb, COLOR_BLACK);
VIDEO_SetNextFramebuffer(sfb);
VIDEO_Flush();
VIDEO_WaitVSync();
if (rmode->viTVMode & VI_NON_INTERLACE) VIDEO_WaitVSync();
VIDEO_SetBlack(FALSE);
VIDEO_WaitVSync();
if (rmode->viTVMode & VI_NON_INTERLACE) VIDEO_WaitVSync();
}
示例8: Initialise
void Initialise()
{
// Initialise the video system
VIDEO_Init();
// This function initialises the attached controllers
PAD_Init();
// Obtain the preferred video mode from the system
// This will correspond to the settings in the Wii menu
rmode = VIDEO_GetPreferredMode(NULL);
// Allocate memory for the display in the uncached region
xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
// Initialise the console, required for printf
console_init(xfb,20,20,rmode->fbWidth,rmode->xfbHeight,rmode->fbWidth*VI_DISPLAY_PIX_SZ);
// Set up the video registers with the chosen mode
VIDEO_Configure(rmode);
// Tell the video hardware where our display memory is
VIDEO_SetNextFramebuffer(xfb);
// Make the display visible
VIDEO_SetBlack(FALSE);
// Flush the video register changes to the hardware
VIDEO_Flush();
// Wait for Video setup to complete
VIDEO_WaitVSync();
if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();
}
示例9: wpad_config
static void wpad_config(u8 num)
{
int i,j;
int max = MAX_KEYS;
u8 quit;
char msg[30];
u32 current = 255;
/* check wiimote status */
if (WPAD_Probe(num, ¤t) != WPAD_ERR_NONE)
{
WaitPrompt("Wiimote is not connected !");
return;
}
/* index for wpad_keymap */
u8 index = current + (num * 3);
/* loop on each mapped keys */
for (i=0; i<max; i++)
{
/* remove any pending buttons */
while (WPAD_ButtonsHeld(num))
{
WPAD_ScanPads();
VIDEO_WaitVSync();
}
/* user information */
ClearScreen();
sprintf(msg,"Press key for %s",keys_name[i]);
WriteCentre(254, msg);
SetScreen();
/* wait for input */
quit = 0;
while (quit == 0)
{
WPAD_ScanPads();
/* get buttons */
for (j=0; j<20; j++)
{
if (WPAD_ButtonsDown(num) & wpad_keys[j])
{
wpad_keymap[index][i] = wpad_keys[j];
quit = 1;
j = 20; /* leave loop */
}
}
} /* wait for input */
} /* loop for all keys */
/* removed any pending buttons */
while (WPAD_ButtonsHeld(num))
{
WPAD_ScanPads();
VIDEO_WaitVSync();
}
}
示例10: load_dol_image
u32 load_dol_image (void *dolstart, struct __argv *argv) {
u32 i;
dolheader *dolfile;
if (dolstart) {
dolfile = (dolheader *) dolstart;
for (i = 0; i < 7; i++) {
if ((!dolfile->text_size[i]) || (dolfile->text_start[i] < 0x100)) continue;
VIDEO_WaitVSync();
ICInvalidateRange ((void *) dolfile->text_start[i],dolfile->text_size[i]);
memmove ((void *) dolfile->text_start[i],dolstart+dolfile->text_pos[i],dolfile->text_size[i]);
}
for(i = 0; i < 11; i++) {
if ((!dolfile->data_size[i]) || (dolfile->data_start[i] < 0x100)) continue;
VIDEO_WaitVSync();
memmove ((void *) dolfile->data_start[i],dolstart+dolfile->data_pos[i],dolfile->data_size[i]);
DCFlushRangeNoSync ((void *) dolfile->data_start[i],dolfile->data_size[i]);
}
memset ((void *) dolfile->bss_start, 0, dolfile->bss_size);
DCFlushRange((void *) dolfile->bss_start, dolfile->bss_size);
if (argv && argv->argvMagic == ARGV_MAGIC) {
void *new_argv = (void *)(dolfile->entry_point + 8);
memmove(new_argv, argv, sizeof(*argv));
DCFlushRange(new_argv, sizeof(*argv));
}
return dolfile->entry_point;
}
return 0;
}
示例11: uidisplay_frame_end
void
uidisplay_frame_end( void )
{
VIDEO_WaitVSync();
if(rmode->viTVMode & VI_NON_INTERLACE) VIDEO_WaitVSync();
return;
}
示例12: show_console
static void show_console(int code) {
u32 i, b;
printf("ScummVM exited abnormally (%d).\n", code);
gfx_frame_abort();
gfx_init();
if (!gfx_frame_start())
return;
gfx_con_draw();
gfx_frame_end();
for (i = 0; i < 60 * 3; ++i)
VIDEO_WaitVSync();
#ifdef DEBUG_WII_GDB
printf("attach gdb now\n");
_break();
#endif
printf("Press any key to continue.\n");
if (!gfx_frame_start())
return;
gfx_con_draw();
gfx_frame_end();
VIDEO_WaitVSync();
while (true) {
b = 0;
if (PAD_ScanPads() & 1)
b = PAD_ButtonsDown(0);
#ifndef GAMECUBE
WPAD_ScanPads();
if (WPAD_Probe(0, NULL) == WPAD_ERR_NONE)
b |= WPAD_ButtonsDown(0);
#endif
if (b)
break;
VIDEO_WaitVSync();
}
printf("\n\nExiting...\n");
if (!gfx_frame_start())
return;
gfx_con_draw();
gfx_frame_end();
VIDEO_WaitVSync();
}
示例13: DrawArgsSelector
void DrawArgsSelector(char *fileName) {
Parameters* params = getParameters();
int param_selection = 0;
int params_per_page = 6;
while ((PAD_ButtonsHeld(0) & PAD_BUTTON_A)){ VIDEO_WaitVSync (); }
while(1) {
doBackdrop();
DrawEmptyBox(20,60, vmode->fbWidth-20, 460, COLOR_BLACK);
sprintf(txtbuffer, "%s Parameters:", fileName);
WriteFontStyled(25, 62, txtbuffer, GetTextScaleToFitInWidth(txtbuffer, vmode->fbWidth-50), false, defaultColor);
int j = 0;
int current_view_start = MIN(MAX(0,param_selection-params_per_page/2),MAX(0,params->num_params-params_per_page));
int current_view_end = MIN(params->num_params, MAX(param_selection+params_per_page/2,params_per_page));
int scrollBarHeight = 90+(params_per_page*20);
int scrollBarTabHeight = (int)((float)scrollBarHeight/(float)params->num_params);
DrawVertScrollBar(vmode->fbWidth-45, 120, 25, scrollBarHeight, (float)((float)param_selection/(float)(params->num_params-1)),scrollBarTabHeight);
for(j = 0; current_view_start<current_view_end; ++current_view_start,++j) {
drawParameterForArgsSelector(¶ms->parameters[current_view_start], 25, 120+j*35, current_view_start==param_selection);
}
// Write about the default if there is any
DrawTransparentBox( 35, 350, vmode->fbWidth-35, 400);
WriteFontStyled(33, 345, "Default values will be used by the DOL being loaded if a", 0.8f, false, defaultColor);
WriteFontStyled(33, 365, "parameter is not enabled. Please check the documentation", 0.8f, false, defaultColor);
WriteFontStyled(33, 385, "for this DOL if you are unsure of the default values.", 0.8f, false, defaultColor);
WriteFontStyled(640/2, 440, "(A) Toggle Param - (Start) Load the DOL", 1.0f, true, defaultColor);
DrawFrameFinish();
while (!(PAD_ButtonsHeld(0) & (PAD_BUTTON_RIGHT|PAD_BUTTON_LEFT|PAD_BUTTON_UP|PAD_BUTTON_DOWN|PAD_BUTTON_START|PAD_BUTTON_A)))
{ VIDEO_WaitVSync (); }
u16 btns = PAD_ButtonsHeld(0);
if((btns & (PAD_BUTTON_RIGHT|PAD_BUTTON_LEFT)) && params->parameters[param_selection].enable) {
int curValIdx = params->parameters[param_selection].currentValueIdx;
int maxValIdx = params->parameters[param_selection].num_values;
curValIdx = btns & PAD_BUTTON_LEFT ?
((--curValIdx < 0) ? maxValIdx-1 : curValIdx):((curValIdx + 1) % maxValIdx);
params->parameters[param_selection].currentValueIdx = curValIdx;
}
if(btns & (PAD_BUTTON_UP|PAD_BUTTON_DOWN)) {
param_selection = btns & PAD_BUTTON_UP ?
((--param_selection < 0) ? params->num_params-1 : param_selection)
:((param_selection + 1) % params->num_params);
}
if(btns & PAD_BUTTON_A) {
params->parameters[param_selection].enable ^= 1;
}
if(btns & PAD_BUTTON_START) {
break;
}
while (PAD_ButtonsHeld(0) & (PAD_BUTTON_RIGHT|PAD_BUTTON_LEFT|PAD_BUTTON_UP|PAD_BUTTON_DOWN|PAD_BUTTON_START|PAD_BUTTON_A))
{ VIDEO_WaitVSync (); }
}
}
示例14: main
int main(int argc, char **argv)
{
//DEBUG_Init(GDBSTUB_DEVICE_USB, 1);
s8 ios_patched = 0;
s32 ret = 0;
CheckForGecko();
VIDEO_Init();
vmode = VIDEO_GetPreferredMode(NULL);
xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(vmode));
VIDEO_Configure(vmode);
VIDEO_SetNextFramebuffer(xfb);
VIDEO_SetBlack(false);
VIDEO_Flush();
VIDEO_WaitVSync();
if (vmode->viTVMode & VI_NON_INTERLACE) VIDEO_WaitVSync();
int x = 20, y = 20, w, h;
w = vmode->fbWidth - (x * 2);
h = vmode->xfbHeight - (y + 20);
// Initialize the console
//Con_InitEX works better but for some odd reason doesn't show right when clearing screen...
//CON_InitEx(vmode, x, y, w, h);
CON_Init(xfb,x,y,w,h, vmode->fbWidth*VI_DISPLAY_PIX_SZ );
printf("\n\n\n");
VIDEO_ClearFrameBuffer(vmode, xfb, COLOR_BLACK);
gprintf("resolution is %dx%d\n",vmode->viWidth,vmode->viHeight);
//printf("\x1b[2J");
/*sleep(3);
gprintf("crashing...\n");
free((void*)0x1);*/
/*free((void*)0x1);
free((void*)0x1);
free((void*)0x1);
memcpy((void*)0x0,(void*)0x1,5);*/
//return 0;
//reload ios so that IF the user started this with AHBPROT we lose everything from HBC. also, IOS36 is the most patched ios :')
IOS_ReloadIOS(36);
WPAD_Init();
PAD_Init();
printf("\nIOS %d rev %d\n\n",IOS_GetVersion(),IOS_GetRevision());
if( (VERSION&0xFF) % 10 == 0 )
{
#if BETAVERSION > 0
printf("Priiloader v%d.%db%d(r0x%08x) Installation/Removal Tool\n\n\n\n\t",VERSION>>8, (VERSION&0xFF) / 10,BETAVERSION,GIT_REV);
#else
printf("\t\tPriiloader v%d.%d(r0x%08x) Installation / Removal Tool\n\n\n\n\t",VERSION>>8, (VERSION&0xFF) / 10,GIT_REV);
#endif
}
示例15: InitVideo
void InitVideo()
{
VIDEO_Init();
// If WiiU - Force 16:9 aspect ratio based on WiiU settings
if(isWiiU() && Settings.widescreen)
{
write32(0xd8006a0, 0x30000004), mask32(0xd8006a8, 0, 2);
}
vmode = VIDEO_GetPreferredMode(NULL); // get default video mode
vmode->viWidth = Settings.widescreen ? 708 : 694;
if (Settings.PAL50)
{
vmode->viXOrigin = (VI_MAX_WIDTH_PAL - vmode->viWidth) / 2;
}
else
{
vmode->viXOrigin = (VI_MAX_WIDTH_NTSC - vmode->viWidth) / 2;
}
VIDEO_Configure(vmode);
screenheight = 480;
screenwidth = vmode->fbWidth;
// Allocate the video buffers
xfb[0] = (u32 *) MEM_K0_TO_K1 ( SYS_AllocateFramebuffer ( vmode ) );
xfb[1] = (u32 *) MEM_K0_TO_K1 ( SYS_AllocateFramebuffer ( vmode ) );
// Clear framebuffers etc.
VIDEO_ClearFrameBuffer(vmode, xfb[0], COLOR_BLACK);
VIDEO_ClearFrameBuffer(vmode, xfb[1], COLOR_BLACK);
VIDEO_SetNextFramebuffer(xfb[0]);
VIDEO_Flush();
VIDEO_WaitVSync();
if (vmode->viTVMode & VI_NON_INTERLACE)
VIDEO_WaitVSync();
// Initialize GX
GXColor background = { 0, 0, 0, 0xff };
gp_fifo = (u8 *) memalign(32, GP_FIFO_SIZE);
memset (gp_fifo, 0, GP_FIFO_SIZE);
GX_Init (gp_fifo, GP_FIFO_SIZE);
GX_SetCopyClear (background, 0x00ffffff);
GX_SetDispCopyGamma (GX_GM_1_0);
GX_SetCullMode (GX_CULL_NONE);
ResetVideo_Menu();
VIDEO_SetBlack(FALSE);
// Finally, the video is up and ready for use :)
}