更改 Content.Load 格式

本文关键字:格式 Texture2D Content Load 更改 | 更新日期: 2023-09-27 18:31:51

我们正在XNA中开发一些游戏,感谢Mono+MonoGame+MonoForAndroid,这些游戏将在所有三个主要的移动平台上准备就绪。问题是,由于我们需要使用尽可能少的内存以避免设备崩溃,因此我们选择使用纹理格式 Bgra5551。

不幸的是,当您调用 Load 方法时,内容管理器对纹理 (A8R8G8B8) 使用颜色格式。

我的问题是:我可以使用 Content.Load 以某种方式获得 5551 纹理吗?

我已经有了将 32 位纹理转换为 16 位纹理的代码。我在想一种方法来覆盖 Load 方法,但我没有找到任何东西。

我怎么可能?

谢谢

-尼古拉·马尔切桑

更改 Content.Load<Texture2D> 格式

默认纹理处理器不支持该输出纹理格式,但也许您想创建自己的纹理处理器...

[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;
   }
}