質問

私は窓の内側GLXとOpenGLコンテキストを作成したいと思います。しかし、私はそれが全体の窓領域の上にまたがるする必要はありません。代わりに、それが唯一の部分領域をカバーする必要があります。

例えば、GLUTは、この動作の機能を提供します。また、GTK +やQTなどの主要なツールキットには、Xウィンドウの唯一の部分領域あるGLのウィジェットを提供します。しかし、私は、低レベルの作業をする必要があります。

glXMakeCurrent()X Drawableの識別子を受け付けます。それは窓の部分領域であるとしてDrawableのを定義することは可能ですか?またはウィンドウ領域にコンテキストをバインドする方法は他にありますか。

GLX基準(ブルーブック)

編集:!が追加されました素晴らしい恵み

役に立ちましたか?

解決 2

私は BSD manページの中での情報のこの便利な一枚を見つけます:

  

あなたにとって重要であるほとんどすべての点では、サブウィンドウは、トップレベルのウィンドウのようなものです。これは、ウィンドウIDを持っています。それは、イベントコールバックの独自のセットを持っています。あなたはそれをレンダリングすることができます。あなたは、その作成が通知されます。 ...

     

サブウィンドウは、いくつかの他のウィンドウ(おそらくトップレベルウィンドウ、おそらく別のサブウィンドウ)の内側に住んでいます。このため、それは一般的にだけので、それはウィンドウマネージャが施されていない、あなた自身の創造の他のウィンドウと対話します。これは、トップレベルのウィンドウとの相違点について主なソースです。

だから私は、人気のツールキットでGLウィジェットも明確な(サブ)ウィンドウとして実際に機能していることを前提としています。興味深い部分は、これはウィンドウマネージャので、ユーザに対して透過的であるということです。

他のヒント

あなたはできるだけglXMakeCurrent()それのないサブセクションX Drawableのは、しかし、あなたの解決策は単純です:それはあなたのアプリケーションであるかのようにXウィンドウについて考えるのをやめます。各Xアプリケーションは通常、10年代やXウィンドウの100年代で構成されています。あなたが望むエリアに子ウィンドウを作成し、その中に描画します。

代わりに、あなたは、ピックスマップを作成し、その中にレンダリングして、ウィンドウの領域にコピーし、それが遅くなるだろう可能性があります。

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