public override Media.PixelFormat GetNativeFormat( TextureType ttype, Media.PixelFormat format, TextureUsage usage )
{
// Adjust requested parameters to capabilities
RenderSystemCapabilities caps = Root.Instance.RenderSystem.HardwareCapabilities;
#warning check TextureCompressionVTC == RSC_TEXTURE_COMPRESSION_PVRTC
// Check compressed texture support
// if a compressed format not supported, revert to A8R8G8B8
if ( PixelUtil.IsCompressed( format ) &&
!caps.HasCapability( Capabilities.TextureCompressionDXT ) && !caps.HasCapability( Capabilities.TextureCompressionVTC ) )
{
return Media.PixelFormat.A8R8G8B8;
}
// if floating point textures not supported, revert to A8R8G8B8
if ( PixelUtil.IsFloatingPoint( format ) &&
!caps.HasCapability( Capabilities.TextureFloat ) )
{
return Media.PixelFormat.A8R8G8B8;
}
// Check if this is a valid rendertarget format
if ( ( usage & TextureUsage.RenderTarget ) != 0 )
{
/// Get closest supported alternative
/// If format is supported it's returned
return GLESRTTManager.Instance.GetSupportedAlternative( format );
}
// Supported
return format;
}