- for(int i = ptr->start_y; i < ptr->end_y; i++)
- {
- switch(engine->mode)
- {
- case MASK_MULTIPLY_ALPHA:
- switch(engine->output->get_color_model())
- {
- case BC_RGB888:
- APPLY_MASK_MULTIPLY_ALPHA(unsigned char, 0xff, 3, 0);
- break;
- case BC_RGB_FLOAT:
- APPLY_MASK_MULTIPLY_ALPHA(float, 1.0, 3, 0);
- break;
- case BC_YUV888:
- APPLY_MASK_MULTIPLY_ALPHA(unsigned char, 0xff, 3, 1);
- break;
- case BC_RGBA_FLOAT:
- APPLY_MASK_MULTIPLY_ALPHA(float, 1.0, 4, 0);
- break;
- case BC_YUVA8888:
- APPLY_MASK_MULTIPLY_ALPHA(unsigned char, 0xff, 4, 1);
- break;
- case BC_RGBA8888:
- APPLY_MASK_MULTIPLY_ALPHA(unsigned char, 0xff, 4, 0);
- break;
- case BC_RGB161616:
- APPLY_MASK_MULTIPLY_ALPHA(uint16_t, 0xffff, 3, 0);
- break;
- case BC_YUV161616:
- APPLY_MASK_MULTIPLY_ALPHA(uint16_t, 0xffff, 3, 1);
- break;
- case BC_YUVA16161616:
- APPLY_MASK_MULTIPLY_ALPHA(uint16_t, 0xffff, 4, 1);
- break;
- case BC_RGBA16161616:
- APPLY_MASK_MULTIPLY_ALPHA(uint16_t, 0xffff, 4, 0);
- break;
- }
- break;
-
- case MASK_SUBTRACT_ALPHA:
- switch(engine->output->get_color_model())
- {
- case BC_RGB888:
- APPLY_MASK_SUBTRACT_ALPHA(unsigned char, 0xff, 3, 0);
- break;
- case BC_RGB_FLOAT:
- APPLY_MASK_SUBTRACT_ALPHA(float, 1.0, 3, 0);
- break;
- case BC_RGBA_FLOAT:
- APPLY_MASK_SUBTRACT_ALPHA(float, 1.0, 4, 0);
- break;
- case BC_RGBA8888:
- APPLY_MASK_SUBTRACT_ALPHA(unsigned char, 0xff, 4, 0);
- break;
- case BC_YUV888:
- APPLY_MASK_SUBTRACT_ALPHA(unsigned char, 0xff, 3, 1);
- break;
- case BC_YUVA8888:
- APPLY_MASK_SUBTRACT_ALPHA(unsigned char, 0xff, 4, 1);
- break;
- case BC_RGB161616:
- APPLY_MASK_SUBTRACT_ALPHA(uint16_t, 0xffff, 3, 0);
- break;
- case BC_RGBA16161616:
- APPLY_MASK_SUBTRACT_ALPHA(uint16_t, 0xffff, 4, 0);
- break;
- case BC_YUV161616:
- APPLY_MASK_SUBTRACT_ALPHA(uint16_t, 0xffff, 3, 1);
- break;
- case BC_YUVA16161616:
- APPLY_MASK_SUBTRACT_ALPHA(uint16_t, 0xffff, 4, 1);
- break;
- }
- break;
- }