void p_rgb_cell(p_win *w, unsigned char *rgbs, int ncols, int nrows, int x0, int y0, int x1, int y1) { if (w->s->sys_pal && !w->rgb_mode) { p_palette(w, p_595, 225); w->rgb_mode = 1; } w_cell(w, 0, rgbs, ncols, nrows, x0, y0, x1, y1); }
static int ChangePalette(Engine *engine) { XEngine *xeng= (XEngine *)engine; p_scr *s = xeng->s; p_win *win = xeng->win; GpColorCell *palette= engine->palette; /* requested palette */ int nColors= engine->nColors; int width, height, depth; if (!s) return 0; depth = p_sshape(s, &width, &height); if (depth > 8) depth = 8; if (nColors > 256) nColors= 256; p_palette(win, palette, nColors); xeng->e.colorChange= 0; return (1<<depth); }