cocos2dxを使ってiOSゲームをAndroidに移植しています。このゲームのアイデアは、画像を変形し、リアルタイムで物理形状に変換することです。ゲームのロジックは、最初に CGContextDrawImage を使用してテクスチャから CGContext を作成し、次に次のようにさまざまなブレンド モードを使用してタッチ時にコンテキストを操作することです。
CGContextSetBlendMode(context, kCGBlendModeMultiply);
CGContextDrawImage(context, rect, texture);
その後、ダーティ ピクセルがテクスチャで更新されます。
glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, w, h, GL_ALPHA, GL_UNSIGNED_BYTE, dirtyPixels);
これは iOS では問題なく動作しますが、Android ではコア グラフィックスがないため動作しません (doh)。このコード プラットフォームを独立させる方法を探しています。2 つの画像のブレンドは非常に簡単なので、CGContextDrawImage を独自のコードと交換して、メモリ内のピクセルをブレンドすることを考えました。
ピクセルをブレンドするための独自のコードを実装すると、コア グラフィックスを使用するよりもはるかに遅くなるか (可能な限りあらゆる方法でブレンドを最適化したとしても)、方法を見つけて各プラットフォームのブレンドを個別に実装する必要があります (コア グラフィックスを使用) iOS と Android で利用可能なものは何でも)? または、より良い方法がありますか (GPU でブレンドをオフロードしようとしましたが、ピクセルを戻すための同期が遅すぎます)。