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;