diff --git a/src/bgfx_p.h b/src/bgfx_p.h index c5c06fe99..bc710a040 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -1232,27 +1232,33 @@ namespace bgfx }; #undef SORT_KEY_RENDER_DRAW + constexpr uint8_t kBlitKeyViewShift = 32-kSortKeyViewNumBits; + constexpr uint32_t kBlitKeyViewMask = uint32_t(BGFX_CONFIG_MAX_VIEWS-1)<> 24); + m_item = uint16_t( (_key & kBlitKeyItemMask) >> kBlitKeyItemShift); + m_view = ViewId( (_key & kBlitKeyViewMask) >> kBlitKeyViewShift); } static uint32_t remapView(uint32_t _key, ViewId _viewRemap[BGFX_CONFIG_MAX_VIEWS]) { - const ViewId oldView = ViewId(_key >> 24); - const uint32_t view = uint32_t(_viewRemap[oldView]) << 24; - const uint32_t key = (_key & ~UINT32_C(0xff000000) ) | view; + const ViewId oldView = ViewId( (_key & kBlitKeyViewMask) >> kBlitKeyViewShift); + const uint32_t view = uint32_t( (_viewRemap[oldView] << kBlitKeyViewShift) & kBlitKeyViewMask); + const uint32_t key = (_key & ~kBlitKeyViewMask) | view; return key; }