diff --git a/src/bgfx_p.h b/src/bgfx_p.h index 8cca5e45..75a9b13f 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -314,6 +314,14 @@ namespace bgfx return uint32_t( (_stencil >> (32*_0or1) ) ); } + inline bool needBorderColor(uint32_t _flags) + { + return BGFX_TEXTURE_U_BORDER == (_flags & BGFX_TEXTURE_U_BORDER) + || BGFX_TEXTURE_V_BORDER == (_flags & BGFX_TEXTURE_V_BORDER) + || BGFX_TEXTURE_W_BORDER == (_flags & BGFX_TEXTURE_W_BORDER) + ; + } + void dump(const VertexDecl& _decl); struct TextVideoMem diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp index e7b7be0b..87703bfd 100644 --- a/src/renderer_d3d11.cpp +++ b/src/renderer_d3d11.cpp @@ -2535,9 +2535,7 @@ BX_PRAGMA_DIAGNOSTIC_POP(); uint32_t hash; ID3D11SamplerState* sampler; - if (BGFX_TEXTURE_U_BORDER != (_flags & BGFX_TEXTURE_U_BORDER) - && BGFX_TEXTURE_V_BORDER != (_flags & BGFX_TEXTURE_V_BORDER) - && BGFX_TEXTURE_W_BORDER != (_flags & BGFX_TEXTURE_W_BORDER) ) + if (!needBorderColor(_flags) ) { bx::HashMurmur2A murmur; murmur.begin(); diff --git a/src/renderer_d3d12.cpp b/src/renderer_d3d12.cpp index 9c6a0c3e..29e3bc0a 100644 --- a/src/renderer_d3d12.cpp +++ b/src/renderer_d3d12.cpp @@ -2810,14 +2810,9 @@ data.NumQualityLevels = 0; sd.ComparisonFunc = 0 == cmpFunc ? D3D12_COMPARISON_FUNC_NEVER : s_cmpFunc[cmpFunc]; uint32_t index = (flags & BGFX_TEXTURE_BORDER_COLOR_MASK) >> BGFX_TEXTURE_BORDER_COLOR_SHIFT; - const bool needBorderColor = false - || BGFX_TEXTURE_U_BORDER == (flags & BGFX_TEXTURE_U_BORDER) - || BGFX_TEXTURE_V_BORDER == (flags & BGFX_TEXTURE_V_BORDER) - || BGFX_TEXTURE_W_BORDER == (flags & BGFX_TEXTURE_W_BORDER) - ; if (NULL != _palette - && needBorderColor) + && needBorderColor(flags) ) { const float* rgba = _palette[index]; sd.BorderColor[0] = rgba[0]; diff --git a/src/renderer_d3d9.cpp b/src/renderer_d3d9.cpp index 3c4504ed..8a26f490 100644 --- a/src/renderer_d3d9.cpp +++ b/src/renderer_d3d9.cpp @@ -1454,9 +1454,7 @@ namespace bgfx { namespace d3d9 setSamplerState(device, _stage, D3DSAMP_SRGBTEXTURE, 0 != (flags & BGFX_TEXTURE_SRGB) ); if (NULL != _rgba) { - if (BGFX_TEXTURE_U_BORDER == (_flags & BGFX_TEXTURE_U_BORDER) - || BGFX_TEXTURE_V_BORDER == (_flags & BGFX_TEXTURE_V_BORDER) - || BGFX_TEXTURE_W_BORDER == (_flags & BGFX_TEXTURE_W_BORDER) ) + if (needBorderColor(_flags) ) { DWORD bc = D3DCOLOR_COLORVALUE(_rgba[0], _rgba[1], _rgba[2], _rgba[3]); setSamplerState(device diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index c7855013..424eed78 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -2540,9 +2540,7 @@ namespace bgfx { namespace gl murmur.begin(); murmur.add(_flags); - if (BGFX_TEXTURE_U_BORDER != (_flags & BGFX_TEXTURE_U_BORDER) - && BGFX_TEXTURE_V_BORDER != (_flags & BGFX_TEXTURE_V_BORDER) - && BGFX_TEXTURE_W_BORDER != (_flags & BGFX_TEXTURE_W_BORDER) ) + if (!needBorderColor(_flags) ) { murmur.add(-1); hash = murmur.end();