0

XNA でいくつかのゲームを開発しています。Mono+MonoGame+MonoForAndroid のおかげで、3 つの主要なモバイル プラットフォームすべてで利用できるようになります。問題は、デバイスのクラッシュを避けるためにできるだけ少ないメモリを使用する必要があるため、テクスチャ フォーマット 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 に答える