From 4ad0236a6ec13ce2828afdaab61926f8c1574bdc Mon Sep 17 00:00:00 2001 From: nick black Date: Mon, 12 Feb 2024 07:53:15 -0500 Subject: [PATCH] usage: provide updated ncchannels_reverse() definition (#2757) --- USAGE.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/USAGE.md b/USAGE.md index 86e1b8b6a..b38f702ca 100644 --- a/USAGE.md +++ b/USAGE.md @@ -3193,10 +3193,20 @@ static inline uint64_t ncchannels_reverse(uint64_t channels){ const uint64_t raw = ((uint64_t)ncchannels_bchannel(channels) << 32u) + ncchannels_fchannel(channels); - const uint64_t statemask = (NC_NOBACKGROUND_MASK | NC_FG_ALPHA_MASK | - NC_BG_ALPHA_MASK | (NC_NOBACKGROUND_MASK >> 32u)); + const uint64_t statemask = ((NC_NOBACKGROUND_MASK | NC_BG_ALPHA_MASK) << 32u) | + NC_NOBACKGROUND_MASK | NC_BG_ALPHA_MASK; uint64_t ret = raw & ~statemask; ret |= channels & statemask; + if(ncchannels_bg_alpha(ret) != NCALPHA_OPAQUE){ + if(!ncchannels_bg_rgb_p(ret)){ + ncchannels_set_bg_alpha(&ret, NCALPHA_OPAQUE); + } + } + if(ncchannels_fg_alpha(ret) != NCALPHA_OPAQUE){ + if(!ncchannels_fg_rgb_p(ret)){ + ncchannels_set_fg_alpha(&ret, NCALPHA_OPAQUE); + } + } return ret; }