diff --git a/src/bgfx_p.h b/src/bgfx_p.h index 6c1de8432..e719c7155 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -286,18 +286,18 @@ namespace stl = std; namespace bgfx { - constexpr uint32_t kChunkMagicTex = BX_MAKEFOURCC('T', 'E', 'X', 0x0); + static constexpr uint32_t kChunkMagicTex = BX_MAKEFOURCC('T', 'E', 'X', 0x0); // Palette: // https://colorkit.co/color-palette-generator/a8e6cf-dcedc1-ffd3b6-76b4bd-bdeaee-8874a3-ff0000-ff8b94/ - constexpr uint32_t kColorFrame = 0xa8'e6'cf'ff; - constexpr uint32_t kColorSubmit = 0xdc'ed'c1'ff; - constexpr uint32_t kColorView = 0xff'd3'b6'ff; - constexpr uint32_t kColorDraw = 0x76'b4'bd'ff; - constexpr uint32_t kColorCompute = 0xbd'ea'ee'ff; - constexpr uint32_t kColorResource = 0x88'74'a3'ff; - constexpr uint32_t kColorMarker = 0xff'00'00'ff; - constexpr uint32_t kColorWait = 0xff'8b'94'ff; + static constexpr uint32_t kColorFrame = 0xa8'e6'cf'ff; + static constexpr uint32_t kColorSubmit = 0xdc'ed'c1'ff; + static constexpr uint32_t kColorView = 0xff'd3'b6'ff; + static constexpr uint32_t kColorDraw = 0x76'b4'bd'ff; + static constexpr uint32_t kColorCompute = 0xbd'ea'ee'ff; + static constexpr uint32_t kColorResource = 0x88'74'a3'ff; + static constexpr uint32_t kColorMarker = 0xff'00'00'ff; + static constexpr uint32_t kColorWait = 0xff'8b'94'ff; extern InternalData g_internalData; extern PlatformData g_platformData; @@ -442,7 +442,7 @@ namespace bgfx void* findModule(const char* _name); bool windowsVersionIs(Condition::Enum _op, uint32_t _version, uint32_t _build = UINT32_MAX); - constexpr bool isShaderType(uint32_t _magic, char _type) + static constexpr bool isShaderType(uint32_t _magic, char _type) { return uint32_t(_type) == (_magic & BX_MAKEFOURCC(0xff, 0, 0, 0) ); } @@ -1095,60 +1095,71 @@ namespace bgfx }; // - constexpr uint8_t kSortKeyViewNumBits = uint8_t(31 - bx::uint32_cntlz(BGFX_CONFIG_MAX_VIEWS) ); - constexpr uint8_t kSortKeyViewBitShift = 64-kSortKeyViewNumBits; - constexpr uint64_t kSortKeyViewMask = uint64_t(BGFX_CONFIG_MAX_VIEWS-1)<= uniformBuffer->m_size - uniformBuffer->m_pos) @@ -2239,8 +2261,8 @@ namespace bgfx KeyT encode() { - constexpr uint32_t kMaxSize = ( (kSizeMask >>kSizeShift ) + 1)<<4; - constexpr uint32_t kMaxOffset = ( (kOffsetMask>>kOffsetShift) + 1)<<4; + static constexpr uint32_t kMaxSize = ( (kSizeMask >>kSizeShift ) + 1)<<4; + static constexpr uint32_t kMaxOffset = ( (kOffsetMask>>kOffsetShift) + 1)<<4; BX_ASSERT(true && uint32_t(m_size) < kMaxSize @@ -2767,8 +2789,8 @@ namespace bgfx void setState(uint64_t _state, uint32_t _rgba) { - const uint8_t blend = ( (_state&BGFX_STATE_BLEND_MASK )>>BGFX_STATE_BLEND_SHIFT )&0xff; - const uint8_t alphaRef = ( (_state&BGFX_STATE_ALPHA_REF_MASK)>>BGFX_STATE_ALPHA_REF_SHIFT)&0xff; + const uint8_t blend = ( (_state&BGFX_STATE_BLEND_MASK )>>BGFX_STATE_BLEND_SHIFT )&0xff; + m_key.m_hasAlphaRef = !!( (_state&BGFX_STATE_ALPHA_REF_MASK)>>BGFX_STATE_ALPHA_REF_SHIFT)&0xff; // Transparency sort order table: // @@ -2787,7 +2809,7 @@ namespace bgfx // | | | | | | | | | | | | +----- BGFX_STATE_BLEND_INV_FACTOR // | | | | | | | | | | | | | // x | | | | | | | | | | | | | x x x x x - m_key.m_blend = "\x0\x2\x2\x3\x3\x2\x3\x2\x3\x2\x2\x2\x2\x2\x2\x2\x2\x2\x2"[( (blend)&0xf) + (!!blend)] + !!alphaRef; + m_key.m_blend = "\x0\x1\x1\x2\x2\x1\x2\x1\x2\x1\x1\x1\x1\x1\x1\x1\x1\x1\x1"[( (blend)&0xf) + (!!blend)]; m_draw.m_stateFlags = _state; m_draw.m_rgba = _rgba; @@ -3386,7 +3408,7 @@ namespace bgfx .m_view = _id, }; - constexpr UniformCacheKey::KeyT kViewHandleMask = UniformCacheKey::kViewMask|UniformCacheKey::kHandleMask; + static constexpr UniformCacheKey::KeyT kViewHandleMask = UniformCacheKey::kViewMask|UniformCacheKey::kHandleMask; static_assert( ( (kViewHandleMask>>32)<<32) == kViewHandleMask, "View + handle must be in top 32 bits of 64-bit key."); const uint32_t uniformKey = uint32_t(key.encode() >> 32);