2

私は、OpenGLを使用してWindows7デスクトップで基本的なポリゴンと楕円を描画しようとしているアプリケーションを書いています。この前の質問によると、これはおそらくデスクトップへのウィンドウハンドルを取得することによるものです。これは私が行う方法を知っています。 ウィンドウなしでWindowsデスクトップにOpenGLを描画します

ただし、2つの質問があります。

  1. 実際にOpenGLにどのウィンドウに描画するかを指示しますか?私は例1を調べてきましたが、openGLがhwndを通過している場所を正確に把握することはできません。openGLにウィンドウハンドルまたはデバイスコンテキストを提供しますか?

  2. PyOpenGLまたはPygletを使用してこれを行うことは可能ですか?または、Cで記述してから、コードをctypesでラップする必要がありますか?

4

1 に答える 1

2

別のプロセスのウィンドウで OpenGL を実行しようとするのは、本当に悪い考えです。OpenGL が機能するには、ウィンドウのピクセル形式を設定する必要があります。ただし、ウィンドウのピクセル形式は一度しか設定できないため、これを外部のウィンドウで行うと大惨事になります。

これを行う適切な方法ですが、独自のオフスクリーン HDC を持つ PBuffer を使用し、この PBuffer にレンダリングし、PBuffer からターゲット ウィンドウに BitBlt をレンダリングする方法が他にないように遅いです。ただし、これを自分で実装したことはないので、これがどれだけうまく機能するかはわかりません。でも、やってみると面白そうなので、次に自分のマシンで Windows を起動するときにそうするかもしれません。

于 2011-06-29T21:08:40.773 に答える