_rsvg_cairo_set_operator (cairo_t * cr, RsvgCompOpType comp_op)
{
    cairo_operator_t op;

    switch (comp_op) {
    case RSVG_COMP_OP_CLEAR:
        op = CAIRO_OPERATOR_CLEAR;
        break;
    case RSVG_COMP_OP_SRC:
        op = CAIRO_OPERATOR_SOURCE;
        break;
    case RSVG_COMP_OP_DST:
        op = CAIRO_OPERATOR_DEST;
        break;
    case RSVG_COMP_OP_DST_OVER:
        op = CAIRO_OPERATOR_DEST_OVER;
        break;
    case RSVG_COMP_OP_SRC_IN:
        op = CAIRO_OPERATOR_IN;
        break;
    case RSVG_COMP_OP_DST_IN:
        op = CAIRO_OPERATOR_DEST_IN;
        break;
    case RSVG_COMP_OP_SRC_OUT:
        op = CAIRO_OPERATOR_OUT;
        break;
    case RSVG_COMP_OP_DST_OUT:
        op = CAIRO_OPERATOR_DEST_OUT;
        break;
    case RSVG_COMP_OP_SRC_ATOP:
        op = CAIRO_OPERATOR_ATOP;
        break;
    case RSVG_COMP_OP_DST_ATOP:
        op = CAIRO_OPERATOR_DEST_ATOP;
        break;
    case RSVG_COMP_OP_XOR:
        op = CAIRO_OPERATOR_XOR;
        break;
    case RSVG_COMP_OP_PLUS:
        op = CAIRO_OPERATOR_ADD;
        break;
    case RSVG_COMP_OP_MULTIPLY:
    case RSVG_COMP_OP_SCREEN:
    case RSVG_COMP_OP_OVERLAY:
    case RSVG_COMP_OP_DARKEN:
    case RSVG_COMP_OP_LIGHTEN:
    case RSVG_COMP_OP_COLOR_DODGE:
    case RSVG_COMP_OP_COLOR_BURN:
    case RSVG_COMP_OP_HARD_LIGHT:
    case RSVG_COMP_OP_SOFT_LIGHT:
    case RSVG_COMP_OP_DIFFERENCE:
    case RSVG_COMP_OP_EXCLUSION:
    default:
        op = CAIRO_OPERATOR_OVER;
        break;
    }
    cairo_set_operator (cr, op);
}
_rsvg_cairo_set_operator (cairo_t * cr, RsvgCompOpType comp_op)
{
    cairo_operator_t op;

    switch (comp_op) {
    case RSVG_COMP_OP_CLEAR:
        op = CAIRO_OPERATOR_CLEAR;
        break;
    case RSVG_COMP_OP_SRC:
        op = CAIRO_OPERATOR_SOURCE;
        break;
    case RSVG_COMP_OP_DST:
        op = CAIRO_OPERATOR_DEST;
        break;
    case RSVG_COMP_OP_DST_OVER:
        op = CAIRO_OPERATOR_DEST_OVER;
        break;
    case RSVG_COMP_OP_SRC_IN:
        op = CAIRO_OPERATOR_IN;
        break;
    case RSVG_COMP_OP_DST_IN:
        op = CAIRO_OPERATOR_DEST_IN;
        break;
    case RSVG_COMP_OP_SRC_OUT:
        op = CAIRO_OPERATOR_OUT;
        break;
    case RSVG_COMP_OP_DST_OUT:
        op = CAIRO_OPERATOR_DEST_OUT;
        break;
    case RSVG_COMP_OP_SRC_ATOP:
        op = CAIRO_OPERATOR_ATOP;
        break;
    case RSVG_COMP_OP_DST_ATOP:
        op = CAIRO_OPERATOR_DEST_ATOP;
        break;
    case RSVG_COMP_OP_XOR:
        op = CAIRO_OPERATOR_XOR;
        break;
    case RSVG_COMP_OP_PLUS:
        op = CAIRO_OPERATOR_ADD;
        break;
    case RSVG_COMP_OP_MULTIPLY:
    case RSVG_COMP_OP_SCREEN:
    case RSVG_COMP_OP_OVERLAY:
    case RSVG_COMP_OP_DARKEN:
    case RSVG_COMP_OP_LIGHTEN:
    case RSVG_COMP_OP_COLOR_DODGE:
    case RSVG_COMP_OP_COLOR_BURN:
    case RSVG_COMP_OP_HARD_LIGHT:
    case RSVG_COMP_OP_SOFT_LIGHT:
    case RSVG_COMP_OP_DIFFERENCE:
    case RSVG_COMP_OP_EXCLUSION:
    default:
        op = CAIRO_OPERATOR_OVER;
        break;
    }
    cairo_set_operator (cr, op);
}