_set_source_rsvg_paint_server (RsvgDrawingCtx * ctx,
                               guint32 current_color_rgb,
                               RsvgPaintServer * ps,
                               guint8 opacity, RsvgBbox bbox, guint32 current_colour)
{
    switch (ps->type) {
    case RSVG_PAINT_SERVER_LIN_GRAD:
        _set_source_rsvg_linear_gradient (ctx, ps->core.lingrad, current_color_rgb, opacity, bbox);
        break;
    case RSVG_PAINT_SERVER_RAD_GRAD:
        _set_source_rsvg_radial_gradient (ctx, ps->core.radgrad, current_color_rgb, opacity, bbox);
        break;
    case RSVG_PAINT_SERVER_SOLID:
        _set_source_rsvg_solid_colour (ctx, ps->core.colour, opacity, current_colour);
        break;
    case RSVG_PAINT_SERVER_PATTERN:
        _set_source_rsvg_pattern (ctx, ps->core.pattern, opacity, bbox);
        break;
    }
}
_set_source_rsvg_paint_server (RsvgDrawingCtx * ctx,
                               guint32 current_color_rgb,
                               RsvgPaintServer * ps,
                               guint8 opacity, RsvgBbox bbox, guint32 current_colour)
{
    switch (ps->type) {
    case RSVG_PAINT_SERVER_LIN_GRAD:
        _set_source_rsvg_linear_gradient (ctx, ps->core.lingrad, current_color_rgb, opacity, bbox);
        break;
    case RSVG_PAINT_SERVER_RAD_GRAD:
        _set_source_rsvg_radial_gradient (ctx, ps->core.radgrad, current_color_rgb, opacity, bbox);
        break;
    case RSVG_PAINT_SERVER_SOLID:
        _set_source_rsvg_solid_colour (ctx, ps->core.colour, opacity, current_colour);
        break;
    case RSVG_PAINT_SERVER_PATTERN:
        _set_source_rsvg_pattern (ctx, ps->core.pattern, opacity, bbox);
        break;
    }
}