if (op->stops[i + 1].scale) factor = ((cairo_fixed_48_16_t) factor << 16) / op->stops[i + 1].scale;  op->shader_function (op->stops[i].color_char, op->stops[i + 1].color_char, factor, pixel);   if (((unsigned char) (*pixel >> 24)) != 0xff) { *pixel = (*pixel & 0xff000000) | (MULTIPLY_COLORCOMP (*pixel >> 16, *pixel >> 24) << 16) | (MULTIPLY_COLORCOMP (*pixel >> 8, *pixel >> 24) << 8) | (MULTIPLY_COLORCOMP (*pixel >> 0, *pixel >> 24) << 0); } break; }
if (((unsigned char) (*pixel >> 24)) != 0xff) { *pixel = (*pixel & 0xff000000) | (MULTIPLY_COLORCOMP (*pixel >> 16, *pixel >> 24) << 16) | (MULTIPLY_COLORCOMP (*pixel >> 8, *pixel >> 24) << 8) | (MULTIPLY_COLORCOMP (*pixel >> 0, *pixel >> 24) << 0);
_cairo_pattern_calc_color_at_pixel (cairo_shader_op_t *op,				    cairo_fixed_t factor,				    int *pixel){    int i;        switch (op->extend) {    case CAIRO_EXTEND_REPEAT:	factor -= factor & 0xffff0000;	break;    case CAIRO_EXTEND_REFLECT:	if (factor < 0 || factor > 65536) {	    if ((factor >> 16) % 2)		factor = 65536 - (factor - (factor & 0xffff0000));	    else		factor -= factor & 0xffff0000;	}	break;    case CAIRO_EXTEND_NONE:	break;    }    if (factor < op->min_offset)	factor = op->min_offset;    else if (factor > op->max_offset)	factor = op->max_offset;        for (i = 0; i < op->n_stops; i++) {	if (factor <= op->stops[i + 1].offset) {	    	    /* take offset as new 0 of coordinate system */	    factor -= op->stops[i].offset;	    	    /* difference between two offsets == 0, abrubt change */	    if (op->stops[i + 1].scale)		factor = ((cairo_fixed_48_16_t) factor << 16) /		    op->stops[i + 1].scale;	    	    op->shader_function (op->stops[i].color_char,				 op->stops[i + 1].color_char,				 factor, pixel);	    	    /* multiply alpha */	    if (((unsigned char) (*pixel >> 24)) != 0xff) {		*pixel = (*pixel & 0xff000000) |		    (MULTIPLY_COLORCOMP (*pixel >> 16, *pixel >> 24) << 16) |		    (MULTIPLY_COLORCOMP (*pixel >> 8, *pixel >> 24) << 8) |		    (MULTIPLY_COLORCOMP (*pixel >> 0, *pixel >> 24) << 0);	    }	    break;	}    }}