if (func == 0) { // normal
// do nothing
} else if (func == 1) { // Multiply
color.multComp_ip(c0);
} else if (func == 2) { // Divide
color.multComp_ip(1/(c0.x + 1), 1/(c0.y + 1), 1/(c0.z + 1), 1);
} else if (func == 3) { // Screen
color.set(1-(1-c0.x)*(1-c1.x), 1-(1-c0.y)*(1-c1.y), 1-(1-c0.z)*(1-c1.z), 1);
} else if (func == 4) { // Overlay
color.set(c0.x*(c0.x + 2*(c1.x)*(1-c0.x)), c0.y*(c0.y + 2*(c1.y)*(1-c0.y)), c0.z*(c0.z + 2*(c1.z)*(1-c0.z)), 1);
} else if (func == 5) { // Dodge