static int set_double_size_enabled(int val, void *param) { cap_render_t *cap_render; video_canvas_t *canvas = (video_canvas_t *)param; int old_doublesizex, old_doublesizey; video_chip_cap_t *video_chip_cap = canvas->videoconfig->cap; if (val) { cap_render = &video_chip_cap->double_mode; } else { cap_render = &video_chip_cap->single_mode; } canvas->videoconfig->rendermode = cap_render->rmode; old_doublesizex = canvas->videoconfig->doublesizex; old_doublesizey = canvas->videoconfig->doublesizey; if (cap_render->sizex > 1 && (video_chip_cap->dsize_limit_width == 0 || (canvas->draw_buffer->canvas_width > 0 && canvas->draw_buffer->canvas_width <= video_chip_cap->dsize_limit_width))) canvas->videoconfig->doublesizex = 1; else canvas->videoconfig->doublesizex = 0; if (cap_render->sizey > 1 && (video_chip_cap->dsize_limit_height == 0 || (canvas->draw_buffer->canvas_height > 0 && canvas->draw_buffer->canvas_height <= video_chip_cap->dsize_limit_height))) canvas->videoconfig->doublesizey = 1; else canvas->videoconfig->doublesizey = 0; /* FIXME: Kludge needed until kind of render and dimensions are separated from `rendermode' (which is overloaded currently). */ if (canvas->videoconfig->rendermode == VIDEO_RENDER_RGB_2X2) { if (canvas->videoconfig->doublesizex == 0) canvas->videoconfig->rendermode = VIDEO_RENDER_RGB_1X2; if (canvas->videoconfig->doublesizex == 0 && canvas->videoconfig->doublesizey == 0) canvas->videoconfig->rendermode = VIDEO_RENDER_RGB_1X1; } if ((canvas->videoconfig->double_size_enabled != val || old_doublesizex != canvas->videoconfig->doublesizex || old_doublesizey != canvas->videoconfig->doublesizey) && canvas->initialized && canvas->viewport->update_canvas > 0) { video_viewport_resize(canvas); } canvas->videoconfig->double_size_enabled = val; video_resources_update_ui(canvas); return 0; }
static int set_double_size_enabled(int val, void *param) { cap_render_t *cap_render; video_canvas_t *canvas = (video_canvas_t *)param; int old_doublesizex, old_doublesizey; video_chip_cap_t *video_chip_cap = canvas->videoconfig->cap; if (val) { cap_render = &video_chip_cap->double_mode; } else { cap_render = &video_chip_cap->single_mode; } canvas->videoconfig->rendermode = cap_render->rmode; old_doublesizex = canvas->videoconfig->doublesizex; old_doublesizey = canvas->videoconfig->doublesizey; if (cap_render->sizex > 1 && (video_chip_cap->dsize_limit_width == 0 || (canvas->draw_buffer->canvas_width <= video_chip_cap->dsize_limit_width)) ) { canvas->videoconfig->doublesizex = (cap_render->sizex - 1); } else { canvas->videoconfig->doublesizex = 0; } if (cap_render->sizey > 1 && (video_chip_cap->dsize_limit_height == 0 || (canvas->draw_buffer->canvas_height <= video_chip_cap->dsize_limit_height)) ) { canvas->videoconfig->doublesizey = (cap_render->sizey - 1); } else { canvas->videoconfig->doublesizey = 0; } DBG(("set_double_size_enabled sizex:%d sizey:%d doublesizex:%d doublesizey:%d rendermode:%d", cap_render->sizex, cap_render->sizey, canvas->videoconfig->doublesizex, canvas->videoconfig->doublesizey, canvas->videoconfig->rendermode)); if ((canvas->videoconfig->double_size_enabled != val || old_doublesizex != canvas->videoconfig->doublesizex || old_doublesizey != canvas->videoconfig->doublesizey) && canvas->initialized && canvas->viewport->update_canvas > 0) { video_viewport_resize(canvas, 1); } canvas->videoconfig->double_size_enabled = val; video_resources_update_ui(canvas); return 0; }
static int set_scale2x_enabled(int val, void *param) { video_canvas_t *canvas = (video_canvas_t *)param; canvas->videoconfig->scale2x = val; if (canvas->initialized) video_canvas_refresh_all(canvas); video_resources_update_ui(canvas); return 0; }
static int set_chip_rendermode(int val, void *param) { char *chip, *dsize; int old, err; video_canvas_t *canvas = (video_canvas_t *)param; old = canvas->videoconfig->filter; chip = canvas->videoconfig->chip_name; DBG(("set_chip_rendermode %s (%d->%d)", chip, old, val)); dsize = util_concat(chip, "DoubleSize", NULL); canvas->videoconfig->filter = val; canvas->videoconfig->scale2x = 0; /* FIXME: remove this */ err = 0; switch (val) { case VIDEO_FILTER_NONE: break; case VIDEO_FILTER_CRT: if (video_color_update_palette(canvas) < 0) { err = 1; } break; case VIDEO_FILTER_SCALE2X: /* set double size */ if (resources_set_int(dsize, 1) < 0) { err = 1; } canvas->videoconfig->scale2x = 1; /* FIXME: remove this */ break; } if (err) { canvas->videoconfig->filter = old; } lib_free(dsize); if (canvas->initialized) { video_canvas_refresh_all(canvas); } video_resources_update_ui(canvas); return 0; }
static int set_hwscale_enabled(int val, void *param) { video_canvas_t *canvas = (video_canvas_t *)param; if (val && !canvas->videoconfig->hwscale && !hwscale_possible) { log_message(LOG_DEFAULT, "HW scale not available, forcing to disabled"); return 0; } canvas->videoconfig->hwscale = val; if (canvas->initialized) { video_viewport_resize(canvas, 1); video_color_update_palette(canvas); } video_resources_update_ui(canvas); return 0; }
static int set_hwscale_enabled(int val, void *param) { video_canvas_t *canvas = (video_canvas_t *)param; if (val && !canvas->videoconfig->hwscale && !hwscale_possible) { #ifdef CELL_DEBUG printf("INFO - HW scale not available, forcing to disabled\n"); #endif return 0; } canvas->videoconfig->hwscale = val; if (canvas->initialized) { video_viewport_resize(canvas); video_color_update_palette(canvas); } video_resources_update_ui(canvas); return 0; }