4

wxGraphicsContext を使用してプロッターを実装しました。開発は wxGTK を使用して行われ、グラフィックは非常に高速でした。

次に、wxWidgets 2.9.0 を使用して Windows (XP) に切り替えました。そして、同じコードは非常に遅いです。フレームのレンダリングには約 350 ミリ秒かかります。ユーザーはプロッターをマウスでドラッグしてナビゲートできるため、更新速度が遅いと非常に遅く感じます。

wxDC を使用していくつかの部分を実装しようとし、違いをベンチマークしました。wxDC を使用すると、コードは約 100 倍高速に実行されます。

私が知る限り、この時点で Cairo と GDI+ の両方がソフトウェアに実装されているため、Cairo が GDI+ よりもはるかに高速である必要があるという本当の理由はありません。

私は何か間違ったことをしていますか?それとも、GDI+ の実装が Cairo に匹敵しないのでしょうか?

1 つの小さなメモ: wxMemoryDC から作成された wxGraphicsContext を使用して、現在 wxBitmap にレンダリングしています。これは XP でのちらつきを避けるためです。XP ではダブル バッファリングが機能しないためです。

4

1 に答える 1

0

カイロのホームページからの抜粋:

Cairo は、すべての出力メディアで一貫した出力を生成するように設計されており、利用可能な場合はディスプレイ ハードウェア アクセラレーションを利用します (たとえば、X Render Extension を使用)。

于 2009-11-18T16:55:56.983 に答える