int GGIMesa_fbdev_setmode(ggi_visual *vis, ggi_mode *mode) { int err; if ((err = ggiCheckMode(vis, mode)) != 0) { return err; } GGIMESADPRINT_CORE("display-fbdev-mesa: setmode %dx%d#%dx%dF%d[0x%02x]\n", mode->visible.x, mode->visible.y, mode->virt.x, mode->virt.y, mode->frames, mode->graphtype); memcpy(LIBGGI_MODE(vis), mode, sizeof(ggi_mode)); /* Now actually set the mode */ err = do_setmode(vis); if (err != 0) { return err; } GGIMESADPRINT_CORE("display-fbdev-mesa: setmode success.\n"); return 0; }
int GGI_lcd823_setmode(struct ggi_visual *vis, ggi_mode *mode) { int err; if ((err = ggiCheckMode(vis, mode)) != 0) { return err; } if (LIBGGI_PAL(vis)->clut.data) { free(LIBGGI_PAL(vis)->clut.data); LIBGGI_PAL(vis)->clut.data = NULL; } if (LIBGGI_PAL(vis)->priv) { free(LIBGGI_PAL(vis)->priv); LIBGGI_PAL(vis)->priv = NULL; } _GGI_lcd823_free_dbs(vis); memcpy(LIBGGI_MODE(vis), mode, sizeof(ggi_mode)); /* Now actually set the mode */ err = do_setmode(vis); if (err != 0) { return err; } /* Reset panning and frames */ vis->d_frame_num = vis->origin_x = vis->origin_y = 0; return 0; }
int GGI_palemu_setmode(struct ggi_visual *vis, ggi_mode *mode) { ggi_palemu_priv *priv = PALEMU_PRIV(vis); int err; DPRINT_MODE("display-palemu: setmode %dx%d#%dx%dF%d[0x%02x]\n", mode->visible.x, mode->visible.y, mode->virt.x, mode->virt.y, mode->frames, mode->graphtype); MANSYNC_ignore(vis); if ((err = ggiCheckMode(vis->instance.stem, mode)) != 0) { return err; } _ggiZapMode(vis, 0); *LIBGGI_MODE(vis) = *mode; priv->parent_mode.visible = mode->visible; priv->parent_mode.virt = mode->virt; priv->parent_mode.dpp = mode->dpp; priv->parent_mode.size = mode->size; priv->parent_mode.frames = 1; if ((err = do_setmode(vis)) != 0) { DPRINT_MODE("display-palemu: setmode failed (%d).\n", err); return err; } priv->squish.x = mode->visible.x / target_width; priv->squish.y = mode->visible.y / target_height; DPRINT_MODE("display-palemu: Attempting to setmode on parent " "visual...\n"); if (priv->target == PALEMU_TARGET) { err = _ggi_palemu_Open(vis); } else { err = _ggi_monotext_Open(vis); } if (err != 0) { return err; } /* Initialize palette */ ggiSetColorfulPalette(vis->instance.stem); MANSYNC_SETFLAGS(vis, LIBGGI_FLAGS(vis)); MANSYNC_cont(vis); DPRINT_MODE("display-palemu: setmode succeeded.\n"); return 0; }
int GGI_trueemu_setmode(struct ggi_visual *vis, ggi_mode *mode) { ggi_trueemu_priv *priv = TRUEEMU_PRIV(vis); int err; DPRINT_MODE("display-trueemu: setmode %dx%d#%dx%dF%d[0x%02x]\n", mode->visible.x, mode->visible.y, mode->virt.x, mode->virt.y, mode->frames, mode->graphtype); MANSYNC_ignore(vis); if ((err = ggiCheckMode(vis->instance.stem, mode)) != 0) { return err; } _ggiZapMode(vis, 0); *LIBGGI_MODE(vis) = *mode; priv->mode.visible = mode->visible; priv->mode.virt = mode->virt; priv->mode.dpp = mode->dpp; priv->mode.size = mode->size; priv->mode.frames = 1; if ((err = do_setmode(vis)) != 0) { DPRINT_MODE("display-trueemu: setmode failed (%d).\n", err); return err; } DPRINT_MODE("display-trueemu: Attempting to setmode on parent " "visual...\n"); if ((err = _ggi_trueemu_Open(vis)) != 0) { return err; } MANSYNC_SETFLAGS(vis, LIBGGI_FLAGS(vis)); MANSYNC_cont(vis); DPRINT_MODE("display-trueemu: setmode succeeded.\n"); return 0; }