208#define GP_PIXEL_UNKNOWN GP_PIXEL_UNKNOWN
209#define GP_PIXEL_RGB101010 GP_PIXEL_RGB101010
210#define GP_PIXEL_xRGB8888 GP_PIXEL_xRGB8888
211#define GP_PIXEL_RGBA8888 GP_PIXEL_RGBA8888
212#define GP_PIXEL_RGB888 GP_PIXEL_RGB888
213#define GP_PIXEL_BGR888 GP_PIXEL_BGR888
214#define GP_PIXEL_RGB555 GP_PIXEL_RGB555
215#define GP_PIXEL_RGB565 GP_PIXEL_RGB565
216#define GP_PIXEL_RGB666 GP_PIXEL_RGB666
217#define GP_PIXEL_RGB332 GP_PIXEL_RGB332
218#define GP_PIXEL_CMYK8888 GP_PIXEL_CMYK8888
219#define GP_PIXEL_P2 GP_PIXEL_P2
220#define GP_PIXEL_P4 GP_PIXEL_P4
221#define GP_PIXEL_P8 GP_PIXEL_P8
222#define GP_PIXEL_G1_DB GP_PIXEL_G1_DB
223#define GP_PIXEL_G2_DB GP_PIXEL_G2_DB
224#define GP_PIXEL_G4_DB GP_PIXEL_G4_DB
225#define GP_PIXEL_G1_UB GP_PIXEL_G1_UB
226#define GP_PIXEL_G2_UB GP_PIXEL_G2_UB
227#define GP_PIXEL_G4_UB GP_PIXEL_G4_UB
228#define GP_PIXEL_G8 GP_PIXEL_G8
229#define GP_PIXEL_GA88 GP_PIXEL_GA88
230#define GP_PIXEL_G16 GP_PIXEL_G16
237#define GP_PIXEL_CHANS_MAX 4
252#define GP_PIXEL_GET_R_RGB101010(p) (GP_GET_BITS(20, 10, (p)))
253#define GP_PIXEL_GET_G_RGB101010(p) (GP_GET_BITS(10, 10, (p)))
254#define GP_PIXEL_GET_B_RGB101010(p) (GP_GET_BITS(0, 10, (p)))
259#define GP_PIXEL_ADDR_RGB101010(pixmap, x, y) GP_PIXEL_ADDR_32BPP(pixmap, x, y)
260#define GP_PIXEL_ADDR_OFFSET_RGB101010(x) GP_PIXEL_ADDR_OFFSET_32BPP(x)
266#define GP_PIXEL_CREATE_RGB101010(R, G, B) (0\
285#define GP_PIXEL_GET_R_xRGB8888(p) (GP_GET_BITS(16, 8, (p)))
286#define GP_PIXEL_GET_G_xRGB8888(p) (GP_GET_BITS(8, 8, (p)))
287#define GP_PIXEL_GET_B_xRGB8888(p) (GP_GET_BITS(0, 8, (p)))
292#define GP_PIXEL_ADDR_xRGB8888(pixmap, x, y) GP_PIXEL_ADDR_32BPP(pixmap, x, y)
293#define GP_PIXEL_ADDR_OFFSET_xRGB8888(x) GP_PIXEL_ADDR_OFFSET_32BPP(x)
299#define GP_PIXEL_CREATE_xRGB8888(R, G, B) (0\
319#define GP_PIXEL_GET_R_RGBA8888(p) (GP_GET_BITS(24, 8, (p)))
320#define GP_PIXEL_GET_G_RGBA8888(p) (GP_GET_BITS(16, 8, (p)))
321#define GP_PIXEL_GET_B_RGBA8888(p) (GP_GET_BITS(8, 8, (p)))
322#define GP_PIXEL_GET_A_RGBA8888(p) (GP_GET_BITS(0, 8, (p)))
327#define GP_PIXEL_ADDR_RGBA8888(pixmap, x, y) GP_PIXEL_ADDR_32BPP(pixmap, x, y)
328#define GP_PIXEL_ADDR_OFFSET_RGBA8888(x) GP_PIXEL_ADDR_OFFSET_32BPP(x)
334#define GP_PIXEL_CREATE_RGBA8888(R, G, B, A) (0\
354#define GP_PIXEL_GET_R_RGB888(p) (GP_GET_BITS(16, 8, (p)))
355#define GP_PIXEL_GET_G_RGB888(p) (GP_GET_BITS(8, 8, (p)))
356#define GP_PIXEL_GET_B_RGB888(p) (GP_GET_BITS(0, 8, (p)))
361#define GP_PIXEL_ADDR_RGB888(pixmap, x, y) GP_PIXEL_ADDR_24BPP(pixmap, x, y)
362#define GP_PIXEL_ADDR_OFFSET_RGB888(x) GP_PIXEL_ADDR_OFFSET_24BPP(x)
368#define GP_PIXEL_CREATE_RGB888(R, G, B) (0\
387#define GP_PIXEL_GET_B_BGR888(p) (GP_GET_BITS(16, 8, (p)))
388#define GP_PIXEL_GET_G_BGR888(p) (GP_GET_BITS(8, 8, (p)))
389#define GP_PIXEL_GET_R_BGR888(p) (GP_GET_BITS(0, 8, (p)))
394#define GP_PIXEL_ADDR_BGR888(pixmap, x, y) GP_PIXEL_ADDR_24BPP(pixmap, x, y)
395#define GP_PIXEL_ADDR_OFFSET_BGR888(x) GP_PIXEL_ADDR_OFFSET_24BPP(x)
401#define GP_PIXEL_CREATE_BGR888(B, G, R) (0\
420#define GP_PIXEL_GET_R_RGB555(p) (GP_GET_BITS(10, 5, (p)))
421#define GP_PIXEL_GET_G_RGB555(p) (GP_GET_BITS(5, 5, (p)))
422#define GP_PIXEL_GET_B_RGB555(p) (GP_GET_BITS(0, 5, (p)))
427#define GP_PIXEL_ADDR_RGB555(pixmap, x, y) GP_PIXEL_ADDR_16BPP(pixmap, x, y)
428#define GP_PIXEL_ADDR_OFFSET_RGB555(x) GP_PIXEL_ADDR_OFFSET_16BPP(x)
434#define GP_PIXEL_CREATE_RGB555(R, G, B) (0\
453#define GP_PIXEL_GET_R_RGB565(p) (GP_GET_BITS(11, 5, (p)))
454#define GP_PIXEL_GET_G_RGB565(p) (GP_GET_BITS(5, 6, (p)))
455#define GP_PIXEL_GET_B_RGB565(p) (GP_GET_BITS(0, 5, (p)))
460#define GP_PIXEL_ADDR_RGB565(pixmap, x, y) GP_PIXEL_ADDR_16BPP(pixmap, x, y)
461#define GP_PIXEL_ADDR_OFFSET_RGB565(x) GP_PIXEL_ADDR_OFFSET_16BPP(x)
467#define GP_PIXEL_CREATE_RGB565(R, G, B) (0\
487#define GP_PIXEL_GET_R_RGB666(p) (GP_GET_BITS(12, 6, (p)))
488#define GP_PIXEL_GET_G_RGB666(p) (GP_GET_BITS(6, 6, (p)))
489#define GP_PIXEL_GET_B_RGB666(p) (GP_GET_BITS(0, 6, (p)))
494#define GP_PIXEL_ADDR_RGB666(pixmap, x, y) GP_PIXEL_ADDR_18BPP_DB(pixmap, x, y)
495#define GP_PIXEL_ADDR_OFFSET_RGB666(x) GP_PIXEL_ADDR_OFFSET_18BPP_DB(x)
501#define GP_PIXEL_CREATE_RGB666(R, G, B) (0\
520#define GP_PIXEL_GET_R_RGB332(p) (GP_GET_BITS(5, 3, (p)))
521#define GP_PIXEL_GET_G_RGB332(p) (GP_GET_BITS(2, 3, (p)))
522#define GP_PIXEL_GET_B_RGB332(p) (GP_GET_BITS(0, 2, (p)))
527#define GP_PIXEL_ADDR_RGB332(pixmap, x, y) GP_PIXEL_ADDR_8BPP(pixmap, x, y)
528#define GP_PIXEL_ADDR_OFFSET_RGB332(x) GP_PIXEL_ADDR_OFFSET_8BPP(x)
534#define GP_PIXEL_CREATE_RGB332(R, G, B) (0\
554#define GP_PIXEL_GET_K_CMYK8888(p) (GP_GET_BITS(24, 8, (p)))
555#define GP_PIXEL_GET_Y_CMYK8888(p) (GP_GET_BITS(16, 8, (p)))
556#define GP_PIXEL_GET_M_CMYK8888(p) (GP_GET_BITS(8, 8, (p)))
557#define GP_PIXEL_GET_C_CMYK8888(p) (GP_GET_BITS(0, 8, (p)))
562#define GP_PIXEL_ADDR_CMYK8888(pixmap, x, y) GP_PIXEL_ADDR_32BPP(pixmap, x, y)
563#define GP_PIXEL_ADDR_OFFSET_CMYK8888(x) GP_PIXEL_ADDR_OFFSET_32BPP(x)
569#define GP_PIXEL_CREATE_CMYK8888(K, Y, M, C) (0\
588#define GP_PIXEL_GET_P_P2(p) (GP_GET_BITS(0, 2, (p)))
593#define GP_PIXEL_ADDR_P2(pixmap, x, y) GP_PIXEL_ADDR_2BPP_UB(pixmap, x, y)
594#define GP_PIXEL_ADDR_OFFSET_P2(x) GP_PIXEL_ADDR_OFFSET_2BPP_UB(x)
600#define GP_PIXEL_CREATE_P2(P) (0\
616#define GP_PIXEL_GET_P_P4(p) (GP_GET_BITS(0, 4, (p)))
621#define GP_PIXEL_ADDR_P4(pixmap, x, y) GP_PIXEL_ADDR_4BPP_UB(pixmap, x, y)
622#define GP_PIXEL_ADDR_OFFSET_P4(x) GP_PIXEL_ADDR_OFFSET_4BPP_UB(x)
628#define GP_PIXEL_CREATE_P4(P) (0\
643#define GP_PIXEL_GET_P_P8(p) (GP_GET_BITS(0, 8, (p)))
648#define GP_PIXEL_ADDR_P8(pixmap, x, y) GP_PIXEL_ADDR_8BPP(pixmap, x, y)
649#define GP_PIXEL_ADDR_OFFSET_P8(x) GP_PIXEL_ADDR_OFFSET_8BPP(x)
655#define GP_PIXEL_CREATE_P8(P) (0\
671#define GP_PIXEL_GET_V_G1_DB(p) (GP_GET_BITS(0, 1, (p)))
676#define GP_PIXEL_ADDR_G1_DB(pixmap, x, y) GP_PIXEL_ADDR_1BPP_DB(pixmap, x, y)
677#define GP_PIXEL_ADDR_OFFSET_G1_DB(x) GP_PIXEL_ADDR_OFFSET_1BPP_DB(x)
683#define GP_PIXEL_CREATE_G1_DB(V) (0\
699#define GP_PIXEL_GET_V_G2_DB(p) (GP_GET_BITS(0, 2, (p)))
704#define GP_PIXEL_ADDR_G2_DB(pixmap, x, y) GP_PIXEL_ADDR_2BPP_DB(pixmap, x, y)
705#define GP_PIXEL_ADDR_OFFSET_G2_DB(x) GP_PIXEL_ADDR_OFFSET_2BPP_DB(x)
711#define GP_PIXEL_CREATE_G2_DB(V) (0\
727#define GP_PIXEL_GET_V_G4_DB(p) (GP_GET_BITS(0, 4, (p)))
732#define GP_PIXEL_ADDR_G4_DB(pixmap, x, y) GP_PIXEL_ADDR_4BPP_DB(pixmap, x, y)
733#define GP_PIXEL_ADDR_OFFSET_G4_DB(x) GP_PIXEL_ADDR_OFFSET_4BPP_DB(x)
739#define GP_PIXEL_CREATE_G4_DB(V) (0\
755#define GP_PIXEL_GET_V_G1_UB(p) (GP_GET_BITS(0, 1, (p)))
760#define GP_PIXEL_ADDR_G1_UB(pixmap, x, y) GP_PIXEL_ADDR_1BPP_UB(pixmap, x, y)
761#define GP_PIXEL_ADDR_OFFSET_G1_UB(x) GP_PIXEL_ADDR_OFFSET_1BPP_UB(x)
767#define GP_PIXEL_CREATE_G1_UB(V) (0\
783#define GP_PIXEL_GET_V_G2_UB(p) (GP_GET_BITS(0, 2, (p)))
788#define GP_PIXEL_ADDR_G2_UB(pixmap, x, y) GP_PIXEL_ADDR_2BPP_UB(pixmap, x, y)
789#define GP_PIXEL_ADDR_OFFSET_G2_UB(x) GP_PIXEL_ADDR_OFFSET_2BPP_UB(x)
795#define GP_PIXEL_CREATE_G2_UB(V) (0\
811#define GP_PIXEL_GET_V_G4_UB(p) (GP_GET_BITS(0, 4, (p)))
816#define GP_PIXEL_ADDR_G4_UB(pixmap, x, y) GP_PIXEL_ADDR_4BPP_UB(pixmap, x, y)
817#define GP_PIXEL_ADDR_OFFSET_G4_UB(x) GP_PIXEL_ADDR_OFFSET_4BPP_UB(x)
823#define GP_PIXEL_CREATE_G4_UB(V) (0\
838#define GP_PIXEL_GET_V_G8(p) (GP_GET_BITS(0, 8, (p)))
843#define GP_PIXEL_ADDR_G8(pixmap, x, y) GP_PIXEL_ADDR_8BPP(pixmap, x, y)
844#define GP_PIXEL_ADDR_OFFSET_G8(x) GP_PIXEL_ADDR_OFFSET_8BPP(x)
850#define GP_PIXEL_CREATE_G8(V) (0\
866#define GP_PIXEL_GET_V_GA88(p) (GP_GET_BITS(0, 8, (p)))
867#define GP_PIXEL_GET_A_GA88(p) (GP_GET_BITS(8, 8, (p)))
872#define GP_PIXEL_ADDR_GA88(pixmap, x, y) GP_PIXEL_ADDR_16BPP(pixmap, x, y)
873#define GP_PIXEL_ADDR_OFFSET_GA88(x) GP_PIXEL_ADDR_OFFSET_16BPP(x)
879#define GP_PIXEL_CREATE_GA88(V, A) (0\
895#define GP_PIXEL_GET_V_G16(p) (GP_GET_BITS(0, 16, (p)))
900#define GP_PIXEL_ADDR_G16(pixmap, x, y) GP_PIXEL_ADDR_16BPP(pixmap, x, y)
901#define GP_PIXEL_ADDR_OFFSET_G16(x) GP_PIXEL_ADDR_OFFSET_16BPP(x)
907#define GP_PIXEL_CREATE_G16(V) (0\
916#define GP_FN_PER_PIXELTYPE(FN_NAME, type, ...)\
918 case GP_PIXEL_RGB101010:\
919 FN_NAME##_RGB101010(__VA_ARGS__);\
921 case GP_PIXEL_xRGB8888:\
922 FN_NAME##_xRGB8888(__VA_ARGS__);\
924 case GP_PIXEL_RGBA8888:\
925 FN_NAME##_RGBA8888(__VA_ARGS__);\
927 case GP_PIXEL_RGB888:\
928 FN_NAME##_RGB888(__VA_ARGS__);\
930 case GP_PIXEL_BGR888:\
931 FN_NAME##_BGR888(__VA_ARGS__);\
933 case GP_PIXEL_RGB555:\
934 FN_NAME##_RGB555(__VA_ARGS__);\
936 case GP_PIXEL_RGB565:\
937 FN_NAME##_RGB565(__VA_ARGS__);\
939 case GP_PIXEL_RGB666:\
940 FN_NAME##_RGB666(__VA_ARGS__);\
942 case GP_PIXEL_RGB332:\
943 FN_NAME##_RGB332(__VA_ARGS__);\
945 case GP_PIXEL_CMYK8888:\
946 FN_NAME##_CMYK8888(__VA_ARGS__);\
949 FN_NAME##_P2(__VA_ARGS__);\
952 FN_NAME##_P4(__VA_ARGS__);\
955 FN_NAME##_P8(__VA_ARGS__);\
957 case GP_PIXEL_G1_DB:\
958 FN_NAME##_G1_DB(__VA_ARGS__);\
960 case GP_PIXEL_G2_DB:\
961 FN_NAME##_G2_DB(__VA_ARGS__);\
963 case GP_PIXEL_G4_DB:\
964 FN_NAME##_G4_DB(__VA_ARGS__);\
966 case GP_PIXEL_G1_UB:\
967 FN_NAME##_G1_UB(__VA_ARGS__);\
969 case GP_PIXEL_G2_UB:\
970 FN_NAME##_G2_UB(__VA_ARGS__);\
972 case GP_PIXEL_G4_UB:\
973 FN_NAME##_G4_UB(__VA_ARGS__);\
976 FN_NAME##_G8(__VA_ARGS__);\
979 FN_NAME##_GA88(__VA_ARGS__);\
982 FN_NAME##_G16(__VA_ARGS__);\
984 default: GP_ABORT("Invalid PixelType %d", type);\
987#define GP_FN_RET_PER_PIXELTYPE(FN_NAME, type, ...)\
989 case GP_PIXEL_RGB101010:\
990 return FN_NAME##_RGB101010(__VA_ARGS__);\
991 case GP_PIXEL_xRGB8888:\
992 return FN_NAME##_xRGB8888(__VA_ARGS__);\
993 case GP_PIXEL_RGBA8888:\
994 return FN_NAME##_RGBA8888(__VA_ARGS__);\
995 case GP_PIXEL_RGB888:\
996 return FN_NAME##_RGB888(__VA_ARGS__);\
997 case GP_PIXEL_BGR888:\
998 return FN_NAME##_BGR888(__VA_ARGS__);\
999 case GP_PIXEL_RGB555:\
1000 return FN_NAME##_RGB555(__VA_ARGS__);\
1001 case GP_PIXEL_RGB565:\
1002 return FN_NAME##_RGB565(__VA_ARGS__);\
1003 case GP_PIXEL_RGB666:\
1004 return FN_NAME##_RGB666(__VA_ARGS__);\
1005 case GP_PIXEL_RGB332:\
1006 return FN_NAME##_RGB332(__VA_ARGS__);\
1007 case GP_PIXEL_CMYK8888:\
1008 return FN_NAME##_CMYK8888(__VA_ARGS__);\
1010 return FN_NAME##_P2(__VA_ARGS__);\
1012 return FN_NAME##_P4(__VA_ARGS__);\
1014 return FN_NAME##_P8(__VA_ARGS__);\
1015 case GP_PIXEL_G1_DB:\
1016 return FN_NAME##_G1_DB(__VA_ARGS__);\
1017 case GP_PIXEL_G2_DB:\
1018 return FN_NAME##_G2_DB(__VA_ARGS__);\
1019 case GP_PIXEL_G4_DB:\
1020 return FN_NAME##_G4_DB(__VA_ARGS__);\
1021 case GP_PIXEL_G1_UB:\
1022 return FN_NAME##_G1_UB(__VA_ARGS__);\
1023 case GP_PIXEL_G2_UB:\
1024 return FN_NAME##_G2_UB(__VA_ARGS__);\
1025 case GP_PIXEL_G4_UB:\
1026 return FN_NAME##_G4_UB(__VA_ARGS__);\
1028 return FN_NAME##_G8(__VA_ARGS__);\
1029 case GP_PIXEL_GA88:\
1030 return FN_NAME##_GA88(__VA_ARGS__);\
1032 return FN_NAME##_G16(__VA_ARGS__);\
1033 default: GP_ABORT("Invalid PixelType %d", type);\
1040#define GP_PIXEL_CHANS_ADD_RGB101010(pixel, perc) \
1041 GP_PIXEL_CREATE_RGB101010( \
1042 GP_SAT_ADD(GP_PIXEL_GET_R_RGB101010(pixel), 0x3ff * perc / 100, 0x3ff), \
1043 GP_SAT_ADD(GP_PIXEL_GET_G_RGB101010(pixel), 0x3ff * perc / 100, 0x3ff), \
1044 GP_SAT_ADD(GP_PIXEL_GET_B_RGB101010(pixel), 0x3ff * perc / 100, 0x3ff) \
1047#define GP_PIXEL_CHANS_ADD_xRGB8888(pixel, perc) \
1048 GP_PIXEL_CREATE_xRGB8888( \
1049 GP_SAT_ADD(GP_PIXEL_GET_R_xRGB8888(pixel), 0xff * perc / 100, 0xff), \
1050 GP_SAT_ADD(GP_PIXEL_GET_G_xRGB8888(pixel), 0xff * perc / 100, 0xff), \
1051 GP_SAT_ADD(GP_PIXEL_GET_B_xRGB8888(pixel), 0xff * perc / 100, 0xff) \
1054#define GP_PIXEL_CHANS_ADD_RGBA8888(pixel, perc) \
1055 GP_PIXEL_CREATE_RGBA8888( \
1056 GP_SAT_ADD(GP_PIXEL_GET_R_RGBA8888(pixel), 0xff * perc / 100, 0xff), \
1057 GP_SAT_ADD(GP_PIXEL_GET_G_RGBA8888(pixel), 0xff * perc / 100, 0xff), \
1058 GP_SAT_ADD(GP_PIXEL_GET_B_RGBA8888(pixel), 0xff * perc / 100, 0xff), \
1059 GP_PIXEL_GET_A_RGBA8888(pixel) \
1062#define GP_PIXEL_CHANS_ADD_RGB888(pixel, perc) \
1063 GP_PIXEL_CREATE_RGB888( \
1064 GP_SAT_ADD(GP_PIXEL_GET_R_RGB888(pixel), 0xff * perc / 100, 0xff), \
1065 GP_SAT_ADD(GP_PIXEL_GET_G_RGB888(pixel), 0xff * perc / 100, 0xff), \
1066 GP_SAT_ADD(GP_PIXEL_GET_B_RGB888(pixel), 0xff * perc / 100, 0xff) \
1069#define GP_PIXEL_CHANS_ADD_BGR888(pixel, perc) \
1070 GP_PIXEL_CREATE_BGR888( \
1071 GP_SAT_ADD(GP_PIXEL_GET_B_BGR888(pixel), 0xff * perc / 100, 0xff), \
1072 GP_SAT_ADD(GP_PIXEL_GET_G_BGR888(pixel), 0xff * perc / 100, 0xff), \
1073 GP_SAT_ADD(GP_PIXEL_GET_R_BGR888(pixel), 0xff * perc / 100, 0xff) \
1076#define GP_PIXEL_CHANS_ADD_RGB555(pixel, perc) \
1077 GP_PIXEL_CREATE_RGB555( \
1078 GP_SAT_ADD(GP_PIXEL_GET_R_RGB555(pixel), 0x1f * perc / 100, 0x1f), \
1079 GP_SAT_ADD(GP_PIXEL_GET_G_RGB555(pixel), 0x1f * perc / 100, 0x1f), \
1080 GP_SAT_ADD(GP_PIXEL_GET_B_RGB555(pixel), 0x1f * perc / 100, 0x1f) \
1083#define GP_PIXEL_CHANS_ADD_RGB565(pixel, perc) \
1084 GP_PIXEL_CREATE_RGB565( \
1085 GP_SAT_ADD(GP_PIXEL_GET_R_RGB565(pixel), 0x1f * perc / 100, 0x1f), \
1086 GP_SAT_ADD(GP_PIXEL_GET_G_RGB565(pixel), 0x3f * perc / 100, 0x3f), \
1087 GP_SAT_ADD(GP_PIXEL_GET_B_RGB565(pixel), 0x1f * perc / 100, 0x1f) \
1090#define GP_PIXEL_CHANS_ADD_RGB666(pixel, perc) \
1091 GP_PIXEL_CREATE_RGB666( \
1092 GP_SAT_ADD(GP_PIXEL_GET_R_RGB666(pixel), 0x3f * perc / 100, 0x3f), \
1093 GP_SAT_ADD(GP_PIXEL_GET_G_RGB666(pixel), 0x3f * perc / 100, 0x3f), \
1094 GP_SAT_ADD(GP_PIXEL_GET_B_RGB666(pixel), 0x3f * perc / 100, 0x3f) \
1097#define GP_PIXEL_CHANS_ADD_RGB332(pixel, perc) \
1098 GP_PIXEL_CREATE_RGB332( \
1099 GP_SAT_ADD(GP_PIXEL_GET_R_RGB332(pixel), 0x7 * perc / 100, 0x7), \
1100 GP_SAT_ADD(GP_PIXEL_GET_G_RGB332(pixel), 0x7 * perc / 100, 0x7), \
1101 GP_SAT_ADD(GP_PIXEL_GET_B_RGB332(pixel), 0x3 * perc / 100, 0x3) \
1104#define GP_PIXEL_CHANS_ADD_CMYK8888(pixel, perc) \
1105 GP_PIXEL_CREATE_CMYK8888( \
1106 GP_SAT_ADD(GP_PIXEL_GET_K_CMYK8888(pixel), 0xff * perc / 100, 0xff), \
1107 GP_SAT_ADD(GP_PIXEL_GET_Y_CMYK8888(pixel), 0xff * perc / 100, 0xff), \
1108 GP_SAT_ADD(GP_PIXEL_GET_M_CMYK8888(pixel), 0xff * perc / 100, 0xff), \
1109 GP_SAT_ADD(GP_PIXEL_GET_C_CMYK8888(pixel), 0xff * perc / 100, 0xff) \
1112#define GP_PIXEL_CHANS_ADD_P2(pixel, perc) \
1113 GP_PIXEL_CREATE_P2( \
1114 GP_SAT_ADD(GP_PIXEL_GET_P_P2(pixel), 0x3 * perc / 100, 0x3) \
1117#define GP_PIXEL_CHANS_ADD_P4(pixel, perc) \
1118 GP_PIXEL_CREATE_P4( \
1119 GP_SAT_ADD(GP_PIXEL_GET_P_P4(pixel), 0xf * perc / 100, 0xf) \
1122#define GP_PIXEL_CHANS_ADD_P8(pixel, perc) \
1123 GP_PIXEL_CREATE_P8( \
1124 GP_SAT_ADD(GP_PIXEL_GET_P_P8(pixel), 0xff * perc / 100, 0xff) \
1127#define GP_PIXEL_CHANS_ADD_G1_DB(pixel, perc) \
1128 GP_PIXEL_CREATE_G1_DB( \
1129 GP_SAT_ADD(GP_PIXEL_GET_V_G1_DB(pixel), 0x1 * perc / 100, 0x1) \
1132#define GP_PIXEL_CHANS_ADD_G2_DB(pixel, perc) \
1133 GP_PIXEL_CREATE_G2_DB( \
1134 GP_SAT_ADD(GP_PIXEL_GET_V_G2_DB(pixel), 0x3 * perc / 100, 0x3) \
1137#define GP_PIXEL_CHANS_ADD_G4_DB(pixel, perc) \
1138 GP_PIXEL_CREATE_G4_DB( \
1139 GP_SAT_ADD(GP_PIXEL_GET_V_G4_DB(pixel), 0xf * perc / 100, 0xf) \
1142#define GP_PIXEL_CHANS_ADD_G1_UB(pixel, perc) \
1143 GP_PIXEL_CREATE_G1_UB( \
1144 GP_SAT_ADD(GP_PIXEL_GET_V_G1_UB(pixel), 0x1 * perc / 100, 0x1) \
1147#define GP_PIXEL_CHANS_ADD_G2_UB(pixel, perc) \
1148 GP_PIXEL_CREATE_G2_UB( \
1149 GP_SAT_ADD(GP_PIXEL_GET_V_G2_UB(pixel), 0x3 * perc / 100, 0x3) \
1152#define GP_PIXEL_CHANS_ADD_G4_UB(pixel, perc) \
1153 GP_PIXEL_CREATE_G4_UB( \
1154 GP_SAT_ADD(GP_PIXEL_GET_V_G4_UB(pixel), 0xf * perc / 100, 0xf) \
1157#define GP_PIXEL_CHANS_ADD_G8(pixel, perc) \
1158 GP_PIXEL_CREATE_G8( \
1159 GP_SAT_ADD(GP_PIXEL_GET_V_G8(pixel), 0xff * perc / 100, 0xff) \
1162#define GP_PIXEL_CHANS_ADD_GA88(pixel, perc) \
1163 GP_PIXEL_CREATE_GA88( \
1164 GP_SAT_ADD(GP_PIXEL_GET_V_GA88(pixel), 0xff * perc / 100, 0xff), \
1165 GP_PIXEL_GET_A_GA88(pixel) \
1168#define GP_PIXEL_CHANS_ADD_G16(pixel, perc) \
1169 GP_PIXEL_CREATE_G16( \
1170 GP_SAT_ADD(GP_PIXEL_GET_V_G16(pixel), 0xffff * perc / 100, 0xffff) \
gp_pixel_type
List of all pixel types.
@ GP_PIXEL_MAX
Last valid pixel type has value GP_PIXEL_MAX-1.