mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-08-11 18:50:55 +00:00
vk: Fix border color selection
This commit is contained in:
parent
c5d1f30e82
commit
40ae5e605d
1 changed files with 25 additions and 13 deletions
|
@ -70,14 +70,24 @@ namespace vk
|
||||||
|
|
||||||
VkBorderColor get_border_color(u32 color)
|
VkBorderColor get_border_color(u32 color)
|
||||||
{
|
{
|
||||||
//TODO: Improve accuracy
|
switch (color)
|
||||||
|
{
|
||||||
|
case 0x00000000:
|
||||||
|
{
|
||||||
|
return VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK;
|
||||||
|
}
|
||||||
|
case 0xFFFFFFFF:
|
||||||
|
{
|
||||||
|
return VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
|
||||||
|
}
|
||||||
|
case 0xFF000000:
|
||||||
|
{
|
||||||
|
return VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
auto color4 = rsx::decode_border_color(color);
|
auto color4 = rsx::decode_border_color(color);
|
||||||
|
if ((color4.r + color4.g + color4.b) > 1.35f)
|
||||||
f32 mag = (color4.r * color4.r) + (color4.g * color4.g) + (color4.b * color4.b);
|
|
||||||
if (mag > 0.f) mag = sqrtf(mag);
|
|
||||||
mag *= 0.3333f;
|
|
||||||
|
|
||||||
if (mag > 0.8f && color4.a > 0.f)
|
|
||||||
{
|
{
|
||||||
//If color elements are brighter than roughly 0.5 average, use white border
|
//If color elements are brighter than roughly 0.5 average, use white border
|
||||||
return VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
|
return VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
|
||||||
|
@ -90,6 +100,8 @@ namespace vk
|
||||||
return VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK;
|
return VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
VkSamplerAddressMode vk_wrap_mode(rsx::texture_wrap_mode gcm_wrap)
|
VkSamplerAddressMode vk_wrap_mode(rsx::texture_wrap_mode gcm_wrap)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue