0

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

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

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

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

我怎么能 ?

非常感谢您,

——尼古拉·马尔切桑

4

1 回答 1

0

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

[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;
   }
}
于 2012-04-19T18:38:34.690 回答