2017-01-17 10 views
1

私はここでAndroidのAndroid SDKとMapOffScreenRendererクラスを使用しており、マップビューをAndroidのプレゼンテーション画面に反映しています。しかし残念ながら、MapOffScreenRendererのビットマップ生成のパフォーマンスは十分ではありません。それについて私は何ができますか?ここでは、モバイルSDKのMapOffScreenRendererのパフォーマンスの問題

パフォーマンスを向上させるために、生成されたビットマップのRGB設定を変更できますか? (たとえば、何とかrgb 565に切り替えます)。

パフォーマンスを向上させるために設定を変更することはできますか?

または、どういうわけかOpenGLテクスチャをビットマップにラップせずに取得できますか?

マップマップのどのレイヤーをビットマップで見たいのですか?

私はofficial documentationのコードを使用しています。どんな助けもありがとう。

答えて

1

オフスクリーンレンダラでキャプチャされたビットマップを使用すると、常にスローになります。それは、PBufferサーフェスに裏打ちされたレンダリングスレッドからのバックバッファ読み出しを行う必要があります。あなたが直接OpenGLのコールを処理する方法を知っているので、もしRGBの設定のない量は、あなたのユースケースで説明したように、あなたが正確に構築することができますMapOffScreenRendererにOnMapRenderListenerSurfaceUpdatedListenerの登録とMapOffScreenRenderer#start(SurfaceHolder, SurfaceUpdatedListener)を使用して、:)

それをスピードアップすることはできません。 SurfaceHolderを使用すると、開発者はマップがレンダリングされるカスタムAndroid surfaceを提供できます。 SurfaceUpdatedListenerは、OpenGLレンダリング呼び出しがswapbuffersを介してコミットされたときのコールバックを提供します。 SurfaceTextureSurfaceに関するさらに高度なアンドロイドのドキュメントをご覧ください。

Map#setVisibleLayersAPIを使用してレンダリングレイヤーを減らしてレンダリングレイヤーをオフにすることもできます。しかし、パフォーマンスが大幅に向上することは間違いありません。

あなたの次の返信はサンプルを希望している可能性が高いですが、残念ながら私は共有できるものは公開していません。

+0

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

+0

または他のアドバイスやリンクがありますか? –

+0

最後に実行可能なPOCを作成しました。 AIDL経由でSurfaceを別のアプリに転送すると、OffScreenRendererが別のアプリの中のSurfaceViewにレンダリングを開始する=)私はパフォーマンスはおそらくこの場合よりも良くないと思いますよね? –

関連する問題