aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Engine/Types
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2022-08-11 18:23:25 -0300
committerGitHub <noreply@github.com>2022-08-11 18:23:25 -0300
commitad47bd2d4ef72e4489f037056ead0a5d021694cc (patch)
tree6548c08ee3be5e0f6784e0e408d3a7e903802251 /Ryujinx.Graphics.Gpu/Engine/Types
parenta5ff0024fb33964c802e1712e5b11a52390603e7 (diff)
Fix blend with RGBX color formats (#3553)
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/Types')
-rw-r--r--Ryujinx.Graphics.Gpu/Engine/Types/ColorFormat.cs33
1 files changed, 32 insertions, 1 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/Types/ColorFormat.cs b/Ryujinx.Graphics.Gpu/Engine/Types/ColorFormat.cs
index e780ec23..889b5c8b 100644
--- a/Ryujinx.Graphics.Gpu/Engine/Types/ColorFormat.cs
+++ b/Ryujinx.Graphics.Gpu/Engine/Types/ColorFormat.cs
@@ -124,11 +124,42 @@ namespace Ryujinx.Graphics.Gpu.Engine.Types
ColorFormat.R8Snorm => new FormatInfo(Format.R8Snorm, 1, 1, 1, 1),
ColorFormat.R8Sint => new FormatInfo(Format.R8Sint, 1, 1, 1, 1),
ColorFormat.R8Uint => new FormatInfo(Format.R8Uint, 1, 1, 1, 1),
- ColorFormat.B5G5R5X1Unorm => new FormatInfo(Format.B5G5R5X1Unorm, 1, 1, 2, 4),
+ ColorFormat.B5G5R5X1Unorm => new FormatInfo(Format.B5G5R5A1Unorm, 1, 1, 2, 4),
ColorFormat.R8G8B8X8Unorm => new FormatInfo(Format.R8G8B8A8Unorm, 1, 1, 4, 4),
ColorFormat.R8G8B8X8Srgb => new FormatInfo(Format.R8G8B8A8Srgb, 1, 1, 4, 4),
_ => FormatInfo.Default
};
}
+
+ /// <summary>
+ /// Checks if a format has an alpha component.
+ /// </summary>
+ /// <param name="format">Format to be checked</param>
+ /// <returns>True if the format has no alpha component (RGBX), false if it does (RGBA)</returns>
+ public static bool NoAlpha(this ColorFormat format)
+ {
+ switch (format)
+ {
+ case ColorFormat.R32G32B32X32Float:
+ case ColorFormat.R32G32B32X32Sint:
+ case ColorFormat.R32G32B32X32Uint:
+ case ColorFormat.R16G16B16X16Unorm:
+ case ColorFormat.R16G16B16X16Snorm:
+ case ColorFormat.R16G16B16X16Sint:
+ case ColorFormat.R16G16B16X16Uint:
+ case ColorFormat.R16G16B16X16Float:
+ case ColorFormat.R8G8B8X8Snorm:
+ case ColorFormat.R8G8B8X8Sint:
+ case ColorFormat.R8G8B8X8Uint:
+ case ColorFormat.B8G8R8X8Unorm:
+ case ColorFormat.B8G8R8X8Srgb:
+ case ColorFormat.B5G5R5X1Unorm:
+ case ColorFormat.R8G8B8X8Unorm:
+ case ColorFormat.R8G8B8X8Srgb:
+ return true;
+ }
+
+ return false;
+ }
}
} \ No newline at end of file