diff --git a/src/Graphics/SurfaceFormat.cs b/src/Graphics/SurfaceFormat.cs index ee0e417f..89db55be 100644 --- a/src/Graphics/SurfaceFormat.cs +++ b/src/Graphics/SurfaceFormat.cs @@ -116,5 +116,13 @@ public enum SurfaceFormat /// BC7 block texture format where the R/G/B values are non-linear sRGB. /// Bc7SrgbEXT, + /// + /// Unsigned 8-bit R pixel format. + /// + ByteEXT, + /// + /// Unsigned 16-bit R pixel format. + /// + UShortEXT, } } diff --git a/src/Graphics/Texture.cs b/src/Graphics/Texture.cs index b3bd69cb..ff9de292 100644 --- a/src/Graphics/Texture.cs +++ b/src/Graphics/Texture.cs @@ -130,6 +130,8 @@ public static int GetBlockSizeSquaredEXT(SurfaceFormat format) case SurfaceFormat.Vector2: case SurfaceFormat.HdrBlendable: case SurfaceFormat.Vector4: + case SurfaceFormat.ByteEXT: + case SurfaceFormat.UShortEXT: return 1; default: throw new ArgumentException("Should be a value defined in SurfaceFormat", "Format"); @@ -149,12 +151,14 @@ public static int GetFormatSizeEXT(SurfaceFormat format) case SurfaceFormat.Bc7SrgbEXT: return 16; case SurfaceFormat.Alpha8: + case SurfaceFormat.ByteEXT: return 1; case SurfaceFormat.Bgr565: case SurfaceFormat.Bgra4444: case SurfaceFormat.Bgra5551: case SurfaceFormat.HalfSingle: case SurfaceFormat.NormalizedByte2: + case SurfaceFormat.UShortEXT: return 2; case SurfaceFormat.Color: case SurfaceFormat.Single: diff --git a/src/Graphics/Texture2D.cs b/src/Graphics/Texture2D.cs index 4807c9dd..fd9b7a70 100644 --- a/src/Graphics/Texture2D.cs +++ b/src/Graphics/Texture2D.cs @@ -98,7 +98,9 @@ SurfaceFormat format format != SurfaceFormat.HalfSingle && format != SurfaceFormat.HalfVector2 && format != SurfaceFormat.HalfVector4 && - format != SurfaceFormat.HdrBlendable ) + format != SurfaceFormat.HdrBlendable && + format != SurfaceFormat.ByteEXT && + format != SurfaceFormat.UShortEXT) { // Not a renderable format period Format = SurfaceFormat.Color;