Изменить формат Content.Load<Texture2D>
Мы разрабатываем некоторые игры для XNA, которые, благодаря Mono+MonoGame+MonoForAndroid, будут готовы на всех трех основных мобильных платформах. Проблема в том, что, поскольку нам нужно использовать как можно меньше памяти, чтобы избежать сбоев устройств, мы решили использовать формат текстур Bgra5551.
К сожалению, менеджер контента использует формат цвета для текстуры (A8R8G8B8) при вызове метода Load.
Мой вопрос: могу ли я как-то получить текстуру 5551, используя Content.Load?
У меня уже есть код, который преобразует 32-битную текстуру в 16-битную текстуру. Я думал о способе переопределить метод Load, но мне не удалось ничего найти.
Как я мог?
большое спасибо вам,
-никола марчесан
1 ответ
Текстурный процессор по умолчанию не поддерживает этот выходной формат текстур, но, возможно, вы захотите создать свой собственный текстурный процессор...
[ContentProcessor(DisplayName = "MyTextureProcessor")]
public class TextureContentProcessor : TextureProcessor
{
public override TextureContent Process(TextureContent input, ContentProcessorContext context)
{
TextureContent data = base.Process(input, context);
// Convert data
return data;
}
}