Exemplo n.º 1
0
void menubase_clrrect(VRAMHDL vram) {

	RECT_T	rct;

	if (vram) {
		vram_getrect(vram, &rct);
		vram_fillalpha(menuvram, &rct, 1);
		menubase_setrect(vram, NULL);
//		movieredraw = 1;
	}
}
Exemplo n.º 2
0
static void vramdraw_drawvram(VRAMHDL vram, const RECT_T *rect) {

	DISPWIN		dispwin;
	VRAMHDL		src;
	RECT_T		srcrect;
	RECT_T		vramrect;

	dispwin = &gamecore.dispwin;
	if (dispwin->flag & DISPWIN_VRAM) {
		src = gamecore.anime.ganvram;
		if (src == NULL) {
			src = gamecore.vram[dispwin->vramnum];
		}
		if (src != NULL) {
			vram_getrect(src, &srcrect);
			if (rect == NULL) {
				vram_getrect(vram, &vramrect);
				rect_enumout(&srcrect, &vramrect, vram, clrcb);
			}
			else {
				rect_enumout(&srcrect, rect, vram, clrcb);
			}
			vrammix_cpy(vram, src, rect);
		}
		else {
			vram_zerofill(vram, rect);
		}
	}
	else {
		vram_zerofill(vram, rect);
		if (gamecore.sys.version >= EXE_VER1) {
			return;
		}
	}
	vramdraw_drawupper(vram, rect);
}
Exemplo n.º 3
0
void vramdraw_setrect(VRAMHDL vram, const RECT_T *rect) {

	RECT_T	rct;

	if (vram) {
		if (rect == NULL) {
			vram_getrect(vram, &rct);
		}
		else {
			rct.left = vram->posx + rect->left;
			rct.top = vram->posy + rect->top;
			rct.right = vram->posx + rect->right;
			rct.bottom = vram->posy + rect->bottom;
		}
		unionrect_add(&gamecore.vramrect, &rct);
	}
}
Exemplo n.º 4
0
static void getposinfo(MENUSYS *sys, MENUPOS *pos, int x, int y) {

	RECT_T		rct;
	int			cnt;
	MSYSWND		wnd;
	MENUHDL		menu;

	cnt = sys->depth;
	wnd = sys->wnd + cnt;
	while(cnt--) {
		wnd--;
		if (wnd->vram) {
			vram_getrect(wnd->vram, &rct);
			if (rect_in(&rct, x, y)) {
				x -= wnd->vram->posx;
				y -= wnd->vram->posy;
				break;
			}
		}
	}
	if (cnt >= 0) {
		pos->depth = cnt;
		pos->wnd = wnd;
		menu = wnd->menu;
		cnt = 0;
		while((menu) && (cnt < wnd->items)) {
			if (!(menu->flag & (MENU_DISABLE | MENU_SEPARATOR))) {
				if (rect_in(&menu->rct, x, y)) {
					pos->pos = cnt;
					pos->menu = menu;
					return;
				}
			}
			cnt++;
			menu = menu->next;
		}
	}
	else {
		pos->depth = -1;
		pos->wnd = NULL;
	}
	pos->pos = -1;
	pos->menu = NULL;
}