static int init_raster(void) { raster_t *raster; raster = &vdc.raster; raster->sprite_status = NULL; raster_line_changes_init(raster); if (raster_init(raster, VDC_NUM_VMODES) < 0) return -1; raster_modes_set_idle_mode(raster->modes, VDC_IDLE_MODE); resources_touch("VDCVideoCache"); vdc_set_geometry(); video_color_palette_internal(vdc.raster.canvas, &vdc_palette); if (video_color_update_palette(vdc.raster.canvas) < 0) { log_error(vdc.log, "Cannot load palette."); return -1; } raster_set_title(raster, machine_name); if (raster_realize(raster) < 0) return -1; raster->border_color = 0; return 0; }
int ted_color_update_palette(struct video_canvas_s *canvas) { int col,lum,cl; float tedlum; video_cbm_color_t *vc; cl = 0; for (lum = 0; lum < 8; lum++) { tedlum = ted_luminances[lum] * 0.867f; for (col = 0; col < 16; col++) { vc = &ted_colors_with_lum[cl]; if (col) vc->luminance = tedlum; else vc->luminance = 0.0f; vc->angle = ted_colors[col].angle; vc->direction = ted_colors[col].direction; vc->name = ted_colors[col].name; cl++; } } video_color_palette_internal(canvas, &ted_palette); return video_color_update_palette(canvas); }
static int set_palette_file_name(const char *val, void *param) { video_canvas_t *canvas = (video_canvas_t *)param; util_string_set(&(canvas->videoconfig->external_palette_name), val); return video_color_update_palette(canvas); }
static int set_color_tint(int val, void *param) { if (val < 0) val=0; if (val > 2000) val=2000; video_resources.color_tint = val; return video_color_update_palette(video_current_canvas); }
static int set_pal_blur(int val, void *param) { if (val < 0) val = 0; if (val > 1000) val = 1000; video_resources.pal_blur = val; return video_color_update_palette(video_current_canvas); }
static int set_pal_oddlinesphase(int val, void *param) { if (val < 0) val = 0; if (val > 2000) val = 2000; video_resources.pal_oddlines_phase = val; return video_color_update_palette(video_current_canvas); }
static int set_ext_palette(int val, void *param) { video_canvas_t *canvas; canvas = (video_canvas_t *)param; canvas->videoconfig->external_palette = (unsigned int)val; return video_color_update_palette(canvas); }
static int set_pal_blur(int val, void *param) { video_canvas_t *canvas = (video_canvas_t *)param; if (val < 0) { val = 0; } if (val > 1000) { val = 1000; } canvas->videoconfig->video_resources.pal_blur = val; return video_color_update_palette(canvas); }
static int set_pal_oddlinesoffset(int val, void *param) { video_canvas_t *canvas = (video_canvas_t *)param; if (val < 0) { val = 0; } if (val > 2000) { val = 2000; } canvas->videoconfig->video_resources.pal_oddlines_offset = val; return video_color_update_palette(canvas); }
static int set_color_gamma(int val, void *param) { video_canvas_t *canvas = (video_canvas_t *)param; if (val < 0) { val = 0; } if (val > 4000) { val = 4000; } canvas->videoconfig->video_resources.color_gamma = val; return video_color_update_palette(canvas); }
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_delayloop_emulation(int val, void *param) { int old = video_resources.delayloop_emulation; video_resources.delayloop_emulation = val; if (video_color_update_palette(video_current_canvas) < 0) { video_resources.delayloop_emulation = old; ui_update_pal_ctrls(video_resources.delayloop_emulation); return -1; } ui_update_pal_ctrls(video_resources.delayloop_emulation); #ifdef WIN32 video_resources_check_win32_newpal(); #endif 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; }
/* FIXME: this one seems weird */ static int video_resources_update_ui(video_canvas_t *canvas) { return video_color_update_palette(canvas); }
void video_render_update_palette(struct video_canvas_s *canvas) { video_color_update_palette(canvas); }