static gx_color_index svg_get_color(gx_device_svg *svg, const gx_drawing_color *pdc) { gx_color_index color = gx_no_color_index; if (gx_dc_is_pure(pdc)) color = gx_dc_pure_color(pdc); return color; }
static char * svg_make_color(gx_device_svg *svg, const gx_drawing_color *pdc) { char *paint = (char *)gs_alloc_string(svg->memory, 8, "svg_make_color"); if (!paint) { gs_throw(gs_error_VMerror, "string allocation failed"); return NULL; } if (gx_dc_is_pure(pdc)) { gx_color_index color = gx_dc_pure_color(pdc); sprintf(paint, "#%06x", (int)(color & 0xffffffL)); } else if (gx_dc_is_null(pdc)) { sprintf(paint, "None"); } else { gs_free_string(svg->memory, (byte *)paint, 8, "svg_make_color"); gs_throw(gs_error_rangecheck, "unknown color type"); return NULL; } return paint; }
static bool gx_dc_pure_equal(const gx_device_color * pdevc1, const gx_device_color * pdevc2) { return pdevc2->type == pdevc1->type && gx_dc_pure_color(pdevc1) == gx_dc_pure_color(pdevc2); }