2012-04-20 5 views
0

SDLを使用してウィジェットにWebカム出力を表示するアプリケーションがあります。これで、毎秒20〜25フレームのオーダーの出力が得られます。埋め込みコンテナの場合の描画パフォーマンス

この出力は、別のプロセスで作成されたQX11EmbedWidgetコンテナに埋め込まれます。 (または、XLib Iを使用している別の実装では、SDLウィンドウのこの出力をネイティブX11ウィンドウに再親子化しました)。

出力この場合の取得は、毎秒約2-5フレームです。

プラットフォーム:Ubuntu on I.MX-53

Q1。これらの2つのケースでパフォーマンスのこの違いについて説明する人もいます。

Q2。アプリケーションの出力を別のウィンドウに埋め込むと、そのレンダリングは2回起こりますか?一度、埋め込まれているアプリケーションによって、そしてこのウィンドウが埋め込まれたアプリケーションによって、

答えて

0

Q1。これらの2つのケースでパフォーマンスのこの違いについて説明する人もいます。

いいえ、実際はありません。 SDLウィンドウを埋め込んでも機能しない可能性があります。または、ご使用のプラットフォームのXサーバーのバグです。それは何でもかまいません。

Q2。アプリケーションの出力を別のウィンドウに埋め込むと、そのレンダリングは2回起こりますか?一度、埋め込まれているアプリケーションによって、そしてこのウィンドウが埋め込まれたアプリケーションによって、

いいえ、レンダリングは埋め込まれているウィンドウでのみ行われます。

ウィンドウを埋め込むだけで、親を変更します。

この出力は、別のプロセスで作成されたQX11EmbedWidgetコンテナに埋め込まれます。

QX11EmbedWidgetではなく、QX11EmbedContainerをコンテナとして使用する必要があります。

+0

@V Jovic私はアプリケーションAとBを両方ともQtに入れ、Aの出力をBに埋め込むとします。アプリAの内部でwidget1.show()を呼び出すと、内部的にレンダリングが始まると思いますか? 2番目のアプリケーションをレンダリングしても出力が表示されませんか?申し訳ありませんが、QX11EmbedWidgetを誤って書きました。 –

+0

@AmitTomarコンテナで 'show()'を呼び出す必要があります(そうでなければ何も見えません)。 –

+0

@V Jovic私がshow()をコンテナにのみ呼び出し、埋め込まれているウィジェットではなく、私は何も見ません。私がコンテナに埋め込まれていないウィジェットに対してのみ呼び出すと、何も見えません。私が両方のためにそれを呼び出す場合、私は出力を参照してください。このことから、コンテナとウィジェットの両方でレンダリングが行われていると推測する必要はありませんか? –

関連する問題