Ejemplo n.º 1
0
Archivo: gfx.c Proyecto: bentley/puNES
void gfx_sdlwe_tick(void) {
	if (sdlwe.event) {
		switch (sdlwe.event) {
			case SDLWIN_SWITCH_RENDERING:
				gfx_SWITCH_RENDERING();
				break;
			case SDLWIN_MAKE_RESET:
				gfx_MAKE_RESET(sdlwe.arg);
				break;
			case SDLWIN_CHANGE_ROM:
				gfx_CHANGE_ROM();
				break;
			case SDLWIN_SWITCH_MODE:
				gfx_SWITCH_MODE();
				break;
			case SDLWIN_FORCE_SCALE:
				gfx_FORCE_SCALE();
				break;
			case SDLWIN_SCALE:
				gfx_SCALE(sdlwe.arg);
				break;
			case SDLWIN_FILTER:
				gfx_FILTER(sdlwe.arg);
				break;
			case SDLWIN_VSYNC:
				gfx_VSYNC();
				break;
		}
		sdlwe.event = sdlwe.arg = SDLWIN_NONE;
	}
}
Ejemplo n.º 2
0
bool dlgOverscanBorders::eventFilter(QObject *obj, QEvent *event) {
	if (event->type() == QEvent::Show) {
		parentMain->ui->action_Oscan_Set_Borders->setEnabled(false);
	} else if (event->type() == QEvent::Close) {
		BYTE force;

		/* aggiorno l'attuale tabella */
		force = overscan_set_mode(machine.type);

		/* ripristino il valore originario del parametro */
		if (data.save_overscan != cfg->oscan) {
			force = TRUE;
			cfg->oscan = data.save_overscan;
		}

		/*
		 * se le dimensioni dei bordi sono cambiati rispetto ai
		 * valori di ingresso allora forzo il gfx_set_screen.
		 */
		{
			BYTE i, *src = (BYTE *) &data.save_borders, *dst = (BYTE *) overscan.borders;

			for (i = 0; i < sizeof(_overscan_borders); i++) {
				if ((*(src + i)) != (*(dst + i))) {
					force = TRUE;
					break;
				}
			}
		}

		if (force == TRUE) {
#if defined (WITH_OPENGL) && defined (__WIN32__)
			gfx_sdlwe_set(SDLWIN_FORCE_SCALE, SDLWIN_NONE);
#else
			gfx_FORCE_SCALE();
#endif
		}

		emu_pause(FALSE);

		/* restituisco alla finestra principale la gestione del focus */
		gui.main_win_lfp = TRUE;

		parentMain->ui->action_Oscan_Set_Borders->setEnabled(true);
	} else if (event->type() == QEvent::LanguageChange) {
		Set_borders::retranslateUi(this);
	}

	return (QObject::eventFilter(obj, event));
}