Просмотр исходного кода

Implement A2B10G10R10 TextureFormat (#248)

* add A2B10G10R10 TextureFormat

* return correct PixelFormat & PixelType

* return correct texture size

* return correct Bytes Per Pixel
greggameplayer 7 лет назад
Родитель
Сommit
ce96a45685

+ 1 - 0
Ryujinx.Graphics/Gal/GalTextureFormat.cs

@@ -5,6 +5,7 @@ namespace Ryujinx.Graphics.Gal
         R32G32B32A32 = 0x1,
         R16G16B16A16 = 0x3,
         A8B8G8R8     = 0x8,
+        A2B10G10R10  = 0x9,
         R32          = 0xf,
         BC6H_SF16    = 0x10,
         BC6H_UF16    = 0x11,

+ 1 - 0
Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs

@@ -132,6 +132,7 @@ namespace Ryujinx.Graphics.Gal.OpenGL
                 case GalTextureFormat.R32G32B32A32: return (PixelFormat.Rgba,           PixelType.Float);
                 case GalTextureFormat.R16G16B16A16: return (PixelFormat.Rgba,           PixelType.HalfFloat);
                 case GalTextureFormat.A8B8G8R8:     return (PixelFormat.Rgba,           PixelType.UnsignedByte);
+                case GalTextureFormat.A2B10G10R10:  return (PixelFormat.Rgba,           PixelType.UnsignedInt2101010Reversed);
                 case GalTextureFormat.R32:          return (PixelFormat.Red,            PixelType.Float);
                 case GalTextureFormat.A1B5G5R5:     return (PixelFormat.Rgba,           PixelType.UnsignedShort5551);
                 case GalTextureFormat.B5G6R5:       return (PixelFormat.Rgb,            PixelType.UnsignedShort565);

+ 1 - 0
Ryujinx.HLE/Gpu/Texture/TextureHelper.cs

@@ -41,6 +41,7 @@ namespace Ryujinx.HLE.Gpu.Texture
                     return Texture.Width * Texture.Height * 8;
 
                 case GalTextureFormat.A8B8G8R8:
+                case GalTextureFormat.A2B10G10R10:
                 case GalTextureFormat.R32:
                 case GalTextureFormat.ZF32:
                 case GalTextureFormat.BF10GF11RF11:

+ 1 - 0
Ryujinx.HLE/Gpu/Texture/TextureReader.cs

@@ -13,6 +13,7 @@ namespace Ryujinx.HLE.Gpu.Texture
                 case GalTextureFormat.R32G32B32A32: return Read16Bpp                 (Memory, Texture);
                 case GalTextureFormat.R16G16B16A16: return Read8Bpp                  (Memory, Texture);
                 case GalTextureFormat.A8B8G8R8:     return Read4Bpp                  (Memory, Texture);
+                case GalTextureFormat.A2B10G10R10:  return Read4Bpp                  (Memory, Texture);
                 case GalTextureFormat.R32:          return Read4Bpp                  (Memory, Texture);
                 case GalTextureFormat.BF10GF11RF11: return Read4Bpp                  (Memory, Texture);
                 case GalTextureFormat.Z24S8:        return Read4Bpp                  (Memory, Texture);