| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- using Ryujinx.Graphics.GAL;
- using Ryujinx.Graphics.Gpu.Image;
- namespace Ryujinx.Graphics.Gpu.State
- {
- /// <summary>
- /// Depth-stencil texture format.
- /// </summary>
- enum ZetaFormat
- {
- D32Float = 0xa,
- D16Unorm = 0x13,
- D24UnormS8Uint = 0x14,
- D24Unorm = 0x15,
- S8UintD24Unorm = 0x16,
- S8Uint = 0x17,
- D32FloatS8Uint = 0x19
- }
- static class ZetaFormatConverter
- {
- /// <summary>
- /// Converts the depth-stencil texture format to a host compatible format.
- /// </summary>
- /// <param name="format">Depth-stencil format</param>
- /// <returns>Host compatible format enum value</returns>
- public static FormatInfo Convert(this ZetaFormat format)
- {
- return format switch
- {
- ZetaFormat.D32Float => new FormatInfo(Format.D32Float, 1, 1, 4, 1),
- ZetaFormat.D16Unorm => new FormatInfo(Format.D16Unorm, 1, 1, 2, 1),
- ZetaFormat.D24UnormS8Uint => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4, 2),
- ZetaFormat.D24Unorm => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4, 1),
- ZetaFormat.S8UintD24Unorm => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4, 2),
- ZetaFormat.S8Uint => new FormatInfo(Format.S8Uint, 1, 1, 1, 1),
- ZetaFormat.D32FloatS8Uint => new FormatInfo(Format.D32FloatS8Uint, 1, 1, 8, 2),
- _ => FormatInfo.Default
- };
- }
- }
- }
|