core: Add more tests for GP_MIX_PIXELS.
[gfxprim.git] / include / core / GP_MixPixels.gen.h.t
blob2ad33a8e75671a5b42b53be1997dc5db67877c44
1 %% extends "base.h.t"
3 %% block descr
4 Macros to mix two pixels accordingly to percentage.
5 %% endblock
7 %% block body
10 #include "GP_Pixel.h"
12 %% for pt in pixeltypes
13 %% if not pt.is_unknown()
15  * Mixes two {{ pt.name }} pixels.
16  *
17  * The percentage is expected as 8 bit unsigned integer [0 .. 255]
18  */
19 #define GP_MIX_PIXELS_{{ pt.name }}(pix1, pix2, perc) ({ \
20 %% for c in pt.chanslist
21         GP_Pixel {{ c[0] }}; \
23         {{ c[0] }}  = GP_Pixel_GET_{{ c[0] }}_{{ pt.name }}(pix1) * (perc); \
24         {{ c[0] }} += GP_Pixel_GET_{{ c[0] }}_{{ pt.name }}(pix2) * (255 - (perc)); \
25         {{ c[0] }} = ({{ c[0] }} + 128) / 255; \
27 %% endfor
29         GP_Pixel_CREATE_{{ pt.name }}({{ pt.chanslist[0][0] }}{% for c in pt.chanslist[1:] %}, {{ c[0] }}{% endfor %}); \
32 %% endif
33 %% endfor
35 %% endblock body