2012-01-22 27 views
0

新しい解像度でglViewportを発行すると、(フロントおよびバック)フレームバッファのサイズが更新されないようです。私のFBOは新しいサイズのFBOテクスチャを再作成するだけなので、サイズ変更をうまく処理しているようです。SDL OpenGLウィンドウのサイズ変更

私は行方不明のものがあるのでしょうか、それとも単にLinuxでサポートされていないものでしょうか?私はSDL_SetVideoModeを呼ぶのを避けようとしているので、私は自分のOpenGLのコンテキストを保持することができます。

答えて

2

glViewportは、ウィンドウのサイズには影響しません。実際、OpenGLコマンドでウィンドウサイズを変更することはできません。すべてglViewportは、正規化されたデバイス座標空間からウィンドウ空間への変換を変更します。ウィンドウ自体のサイズではなく、レンダリングするウィンドウの部分を効果的に変更します。

ウィンドウのサイズは、そのウィンドウを作成したシステムによって管理されます。 SDLにウィンドウのサイズを変更する機能がない場合、ウィンドウのサイズは変更できません。

+0

Linuxではなぜフレームバッファは更新されませんか?これはSDLの問題ですか? Linuxでは、まだ左端の800ピクセルしか描画されません(私の初期サイズは800x600ですが、ウィンドウ上ではウィンドウ全体に描画することができます) –

+0

@StevenLu:glViewportはフレームバッファサイズを変更しないためです。これは、投影がマップされるフレームバッファの部分を選択します。適切なクリッピングを設定することさえできません。そのためにはglScissorが必要です。 – datenwolf

関連する問題