#define CONVERT(p, a_mask, a_shift, r_mask, r_shift, g_mask, g_shift, b_mask, b_shift) \ (((p & a_mask) >> a_shift) | \ ((p & r_mask) >> r_shift) | \ ((p & g_mask) >> g_shift) | \ ((p & b_mask) >> b_shift) #define AL_CONVERT_ARGB_8888_TO_ARGB_4444(p) \ CONVERT(p, 0xFF000000, 16, 0x00FF0000, 12, 0x0000FF00, 8, 0x000000FF, 4)