2009-07-23 8 views
1

私はiPhoneで開発しており、ゲームの大半はOpenGL ESを使用していますが、CGImageとQuartzを使用して表示するメニューもあります。 OpenGL ESでは、どのような画像圧縮(JPG、PNGなど)に関係なく、PVRTCを使用しない限り、テクスチャとしてメモリに格納されたデータは8ビットのテクスチャです2または4ビット。私たちは大きなCGImageのために記憶上の問題を抱えてきたので、私の質問は... QuartzとCGImageはどのような最適化と圧縮を使用していますか? Appleの文書で詳細を見つけることができません。実際には、256色の画像を入れたり、JPGとPNGを入れ替えるかどうかを知りたければ、速度は重要ではなく、メモリはここでボトルネックです。Quartzはテクスチャ圧縮をどのように処理しますか?

ありがとうございました。

答えて

3

クォーツは圧縮されていません。これは、ピクセル精度のコンテンツを素早く合成およびレンダリングするためのものです。画像が文脈に描かれると、どこから来たのかは関係ありませんが、多くのピクセルでピクセルごとにそのコンテキストが取るものです(正しくリコールすると、デバイスのピクセルあたり4バイト)。それがする1つの大きなことは、ブレンドを避けるためにアルファを事前に乗算することです。

ここでは、表示されていない場合は、メモリの負荷があるビューでコンテンツを削除し、必要に応じて再構成できます。そのような場合、圧縮されたソースからのCGI画像は一般的にメモリの消費量が少なくなりますが、あなたが記述した場合には関係がないと思われます。

+0

パーフェクト、情報に感謝します。 – Eli

関連する問題