質問

私は MDI アプリの書Qt.一部のsubwindowsなど QGLWidgets、OpenGLコンテキストを共有します。最も顕著なのこれらの利用OpenGL頂点およびフラグメントのシェーダーでの具体的なイメージを喚起するデータです。

いプログラムをスクリーンショットのアプリケーションのメイン画面で、どのコースのすべてのsubwindowsであることが見えることになります。音するのは容易で("アイディアからは多くの時間を大幅に短縮できそうだけのgoogleサービス"), ものを見てそうすることで知られているトリッキー...

こんどろ風mikiモデルを作ってみたい:

  1. QPixmap::grabWidget 動作しないのsubwindowsその利用シェーダープログラムに、次のようにリダイレクトの文脈でいないであろうということが支援を必要OpenGLの拡張子.(レンダリングコードをチェックに関連する文脈に必要な拡張子を拒否し続けません。)
  2. QPixmap::grabWindow 黙々と葉をすべてOpenGL背景の空のもと利用を基本要素だけます。
  3. QGLWidget::grabFrameBuffer 作品のもののみでOpenGLのコンテキストの特定のsubwindowは思えながら、"み全体の応用(それ Alt+PrtScr なWindows)で作成しています。

にも挑戦しましたがって最初の#2を繰り返し処理を行#3すべてのsubwindows、コピーの結果は#3川崎市内で新築のゲストハウの画像からの#2.このたるまで、そsubwindows重ね--その場合は、画像からの#3上書きしsubwindowフレーム等この手法を取ることが要求されるであろうよりコードに対応するためのすべてのバーコーナー例---

一部追加の背景一度取得しますサムネイル画像にかけて、seqenceを作るために映像を使う gparted.この質問の続き(第一部) 前の質問;それは要するアプリのからシングル-コンOpenGLプログラムも用Qt全体のウィンドウ、UIウィジェット、埋め込んだグラフィックにsubwindows.

がんばろう、Qt-ishプンソースプロジェクトを思いと考え頼Windows特有のハッキングです。(あるべきですが活かすことができたので Alt+PrtScr っくす。)

なので、ご意見募集

役に立ちましたか?

解決

非常にハックが、中にこのように(自分のウィンドウを隠すことなく)デスクトップをキャプチャしませんチュートリアルとすべてのものが、あなたの窓の作品をトリミング?

より一般的に、私は、OpenGLの仕様は、出力は、フロントバッファに配置されなければならないことを要求していることさえわからない:ちょうど出力のためのビデオ・オーバーレイ(またはのVoodoo2風VGAパススルーペテン)を使用することができ、実装

他のヒント

私はオフの手を考えることができる唯一のことは、以下の擬似コードを実行することです。

 for each window
     grab the window into its own pixmap
     grab the GL portions and paste into the windows
 order the window pixmaps by depth of the window (deepest first)
 initialize a common pixmap
 for each window pixmap
     paint the window pixmap into the common pixmap at the appropriate location.

これは??
任意の使用であり、 グラバー例のOpenGLフレームバッファ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top