void IMB_blend_color_byte(unsigned char dst[4], unsigned char src1[4], unsigned char src2[4], IMB_BlendMode mode) { switch (mode) { case IMB_BLEND_MIX: blend_color_mix_byte(dst, src1, src2); break; case IMB_BLEND_ADD: blend_color_add_byte(dst, src1, src2); break; case IMB_BLEND_SUB: blend_color_sub_byte(dst, src1, src2); break; case IMB_BLEND_MUL: blend_color_mul_byte(dst, src1, src2); break; case IMB_BLEND_LIGHTEN: blend_color_lighten_byte(dst, src1, src2); break; case IMB_BLEND_DARKEN: blend_color_darken_byte(dst, src1, src2); break; case IMB_BLEND_ERASE_ALPHA: blend_color_erase_alpha_byte(dst, src1, src2); break; case IMB_BLEND_ADD_ALPHA: blend_color_add_alpha_byte(dst, src1, src2); break; case IMB_BLEND_OVERLAY: blend_color_overlay_byte(dst, src1, src2); break; case IMB_BLEND_HARDLIGHT: blend_color_hardlight_byte(dst, src1, src2); break; case IMB_BLEND_COLORBURN: blend_color_burn_byte(dst, src1, src2); break; case IMB_BLEND_LINEARBURN: blend_color_linearburn_byte(dst, src1, src2); break; case IMB_BLEND_COLORDODGE: blend_color_dodge_byte(dst, src1, src2); break; case IMB_BLEND_SCREEN: blend_color_screen_byte(dst, src1, src2); break; case IMB_BLEND_SOFTLIGHT: blend_color_softlight_byte(dst, src1, src2); break; case IMB_BLEND_PINLIGHT: blend_color_pinlight_byte(dst, src1, src2); break; case IMB_BLEND_LINEARLIGHT: blend_color_linearlight_byte(dst, src1, src2); break; case IMB_BLEND_VIVIDLIGHT: blend_color_vividlight_byte(dst, src1, src2); break; case IMB_BLEND_DIFFERENCE: blend_color_difference_byte(dst, src1, src2); break; case IMB_BLEND_EXCLUSION: blend_color_exclusion_byte(dst, src1, src2); break; case IMB_BLEND_COLOR: blend_color_color_byte(dst, src1, src2); break; case IMB_BLEND_HUE: blend_color_hue_byte(dst, src1, src2); break; case IMB_BLEND_SATURATION: blend_color_saturation_byte(dst, src1, src2); break; case IMB_BLEND_LUMINOSITY: blend_color_luminosity_byte(dst, src1, src2); break; default: dst[0] = src1[0]; dst[1] = src1[1]; dst[2] = src1[2]; dst[3] = src1[3]; break; } }
void IMB_blend_color_byte(unsigned char dst[4], unsigned char src1[4], unsigned char src2[4], IMB_BlendMode mode) { switch (mode) { case IMB_BLEND_MIX: blend_color_mix_byte(dst, src1, src2); break; case IMB_BLEND_ADD: blend_color_add_byte(dst, src1, src2); break; case IMB_BLEND_SUB: blend_color_sub_byte(dst, src1, src2); break; case IMB_BLEND_MUL: blend_color_mul_byte(dst, src1, src2); break; case IMB_BLEND_LIGHTEN: blend_color_lighten_byte(dst, src1, src2); break; case IMB_BLEND_DARKEN: blend_color_darken_byte(dst, src1, src2); break; case IMB_BLEND_ERASE_ALPHA: blend_color_erase_alpha_byte(dst, src1, src2); break; case IMB_BLEND_ADD_ALPHA: blend_color_add_alpha_byte(dst, src1, src2); break; default: dst[0] = src1[0]; dst[1] = src1[1]; dst[2] = src1[2]; dst[3] = src1[3]; break; } }