2011-09-10 11 views
0

私はQGLwidgetのサブクラスを開発した非常に正確なタイミング(ミリ秒のオーダー)でいくつかのイメージをフラッシュする必要があります。イメージは初期化時にテクスチャとしてロードされます。 QTimerインスタンスを使用して、表示されるイメージを変更しています。タイマーのtimeOutシグナルはtimeOutSlotに接続され、ファイルI/Oを実行してからupdateGL()を呼び出します。QGLWidgetの更新 - イベントまたはシグナル/スロット?

私はそのイベントハンドラは、外部イベントのためのものであり、信号/スロットが通信のためにGUIの内部であることを理解が、私はまたtimeOutEventハンドラとしてこれを実装することができました。

は2間のパフォーマンスの違いはありますか? 2〜3ミリ秒を超えるパフォーマンスペナルティは私にとって重要です(ハードウェアは平均です、例えばIntel Core 2 Duo T5700、nVidia 8600M GTグラフィックスカード)。

答えて

0

S/sがすぐに実行されながらイベントは、Qtは、多くの場合、通話最適化と重要性の順序付けを行い、イベントキューに追加されているので、私は、信号/スロットを言うだろう - 直接呼び出しより遅いとはいえ。

1

シグナルとスロットは、昔ながらの関数呼び出しよりも約10倍遅いです。しかし、彼らは非常にゆっくりではないので、処理に数ミリ秒かかります。 1つの信号を処理する時間は、約0.001ms(see slide 27)です。

は、あなたはあなたが表示リフレッシュレートが描画にどのような影響を与えるかを知っている、あなたは非常に正確なタイミングを必要としていることを言うの?画像は60Hzのリフレッシュレートで描画されます(通常は)。画像間の時間は16.7 msですので、得られる最大の精度です。

+0

タイミング情報をありがとうございます。実際には、画像はDLPプロジェクタを介して投影されています。残念ながら、プロジェクタはVGA入力を受け取り、VGA垂直リフレッシュレートによって制限されます。 (私はDLPチップを直接プログラムしたいと思っていたが、いくつかの奇妙な商業上の理由から、TIは単一のDLPチップを、そのチップを有するプロジェクターよりも価格が高いオーダーで販売している)。しかし、私のイメージ表示時間が垂直リフレッシュ期間の倍数である限り、私は安全だと思います。 – subhacom

関連する問題