/* Calculate or load a palette, depending on configuration. */ int video_color_update_palette(struct video_canvas_s *canvas) { palette_t *palette; video_ycbcr_palette_t *ycbcr; video_resources_t *video_resources; DBG(("video_color_update_palette canvas: %p", canvas)); if (canvas == NULL) { return 0; } canvas->videoconfig->color_tables.updated = 1; DBG(("video_color_update_palette cbm palette:%d extern: %d", canvas->videoconfig->cbm_palette ? 1 : 0, canvas->videoconfig->external_palette ? 1 : 0)); if (canvas->videoconfig->cbm_palette == NULL) { return 0; } video_resources = &(canvas->videoconfig->video_resources); if (canvas->videoconfig->external_palette) { palette = video_load_palette(canvas->videoconfig->cbm_palette, canvas->videoconfig->external_palette_name); if (!palette) { return -1; } video_calc_gammatable(video_resources); ycbcr = video_ycbcr_palette_create(palette->num_entries); video_palette_to_ycbcr(palette, ycbcr); video_calc_ycbcrtable(video_resources, ycbcr, &canvas->videoconfig->color_tables); if (canvas->videoconfig->filter == VIDEO_FILTER_CRT) { palette_free(palette); palette = video_calc_palette(canvas, ycbcr); } /* additional table for odd lines */ video_palette_to_ycbcr_oddlines(palette, ycbcr); video_calc_ycbcrtable_oddlines(video_resources, ycbcr, &canvas->videoconfig->color_tables); } else { video_calc_gammatable(video_resources); ycbcr = video_ycbcr_palette_create(canvas->videoconfig->cbm_palette->num_entries); video_cbm_palette_to_ycbcr(canvas->videoconfig->cbm_palette, ycbcr); video_calc_ycbcrtable(video_resources, ycbcr, &canvas->videoconfig->color_tables); palette = video_calc_palette(canvas, ycbcr); /* additional table for odd lines */ video_cbm_palette_to_ycbcr_oddlines(video_resources, canvas->videoconfig->cbm_palette, ycbcr); video_calc_ycbcrtable_oddlines(video_resources, ycbcr, &canvas->videoconfig->color_tables); } video_ycbcr_palette_free(ycbcr); if (palette != NULL) { return video_canvas_palette_set(canvas, palette); } return -1; }
void elicit_free(Elicit *el) { elicit_magnify_stop(el); if (el->color) color_unref(el->color); if (el->obj.main) evas_object_del(el->obj.main); if (el->obj.shot) evas_object_del(el->obj.shot); if (el->obj.swatch) evas_object_del(el->obj.swatch); if (el->ee) ecore_evas_free(el->ee); if (el->band) elicit_band_free(el->band); if (el->palette) palette_free(el->palette); IF_FREE(el->conf.theme); IF_FREE(el->path.theme); IF_FREE(el->path.datadir); IF_FREE(el->path.confdir); IF_FREE(el->path.palette); IF_FREE(el->path.conffile); free(el); }
int palette_load(const char *file_name, palette_t *palette_return) { palette_t *tmp_palette; char *complete_path; FILE *f; int rc; f = sysfile_open(file_name, &complete_path, MODE_READ_TEXT); if (f == NULL) { /* Try to add the extension. */ char *tmp = lib_stralloc(file_name); util_add_extension(&tmp, "vpl"); f = sysfile_open(tmp, &complete_path, MODE_READ_TEXT); lib_free(tmp); if (f == NULL) return -1; } log_message(palette_log, "Loading palette `%s'.", complete_path); lib_free(complete_path); tmp_palette = palette_create(palette_return->num_entries, NULL); rc = palette_load_core(f, file_name, tmp_palette, palette_return); fclose(f); palette_free(tmp_palette); return rc; }
void drv_mps803_shutdown(void) { DBG(("drv_mps803_shutdown\n")); palette_free(palette); }
void video_color_palette_free(struct palette_s *palette) { palette_free(palette); }
/* Calculate or load a palette, depending on configuration. */ int video_color_update_palette(struct video_canvas_s *canvas) { palette_t *palette; video_ycbcr_palette_t *ycbcr; video_resources_t *video_resources; int video; DBG(("video_color_update_palette canvas: %p", canvas)); if (canvas == NULL) { return 0; } canvas->videoconfig->color_tables.updated = 1; DBG(("video_color_update_palette cbm palette:%d extern: %d", canvas->videoconfig->cbm_palette ? 1 : 0, canvas->videoconfig->external_palette ? 1 : 0)); if (canvas->videoconfig->cbm_palette == NULL) { return 0; } /*resources_get_int("MachineVideoStandard", &video);*/ video = canvas->viewport->crt_type; video_resources = &(canvas->videoconfig->video_resources); #if 0 /* setup the palette params so we get 100% the same as in peptos calculations */ video_resources->color_saturation = 1000; video_resources->color_brightness = 1000; video_resources->color_contrast = 1000; video_resources->color_tint = 1000; canvas->videoconfig->cbm_palette->saturation = 34.0081334493f; canvas->videoconfig->cbm_palette->phase = 0; DBG(("sat:%d bri:%d con:%d tin:%d", video_resources->color_saturation, video_resources->color_brightness, video_resources->color_contrast, video_resources->color_tint )); #endif if (canvas->videoconfig->external_palette) { palette = video_load_palette(canvas->videoconfig->cbm_palette, canvas->videoconfig->external_palette_name); if (!palette) { return -1; } video_calc_gammatable(video_resources, video); ycbcr = video_ycbcr_palette_create(palette->num_entries); video_palette_to_ycbcr(palette, ycbcr, video); video_calc_ycbcrtable(video_resources, ycbcr, &canvas->videoconfig->color_tables, video); if (canvas->videoconfig->filter == VIDEO_FILTER_CRT) { palette_free(palette); palette = video_calc_palette(canvas, ycbcr, video); } /* additional table for odd lines */ video_palette_to_ycbcr_oddlines(palette, ycbcr, video); video_calc_ycbcrtable_oddlines(video_resources, ycbcr, &canvas->videoconfig->color_tables, video); } else { video_calc_gammatable(video_resources, video); ycbcr = video_ycbcr_palette_create(canvas->videoconfig->cbm_palette->num_entries); video_cbm_palette_to_ycbcr(canvas->videoconfig->cbm_palette, ycbcr, video); video_calc_ycbcrtable(video_resources, ycbcr, &canvas->videoconfig->color_tables, video); palette = video_calc_palette(canvas, ycbcr, video); /* additional table for odd lines */ video_cbm_palette_to_ycbcr_oddlines(video_resources, canvas->videoconfig->cbm_palette, ycbcr, video); video_calc_ycbcrtable_oddlines(video_resources, ycbcr, &canvas->videoconfig->color_tables, video); } video_ycbcr_palette_free(ycbcr); if (palette != NULL) { return video_canvas_palette_set(canvas, palette); } return -1; }
void drv_mps803_shutdown(void) { palette_free(palette); }