--年--月--日 --:--
新しい記事を書く事で広告が消せます。
日々のこととかプログラムのこととかインテリアのことなんかを不定期に更新する日記
--年--月--日 --:--
2009年03月24日 00:12
2009年02月18日 00:16
2009年02月17日 00:26
2009年01月15日 00:02
2008年12月25日 00:29
OpenGL を管轄する khronos グループでは OpenGL SDK という名前の SDK は配布していません!
OpenGL 1.1 までなら Windows Platform SDK に付属している OpenGL32.dll で使用できます。
OpenGL 1.2 以上 (1.5 や 2.0 など)の機能は Windows 付属のライブラリ(OpenGL32.dll)では扱えません。
使う場合は、OpenGL の HP から glext.h を落としてきてインクルードし、wglGetProcAddress 関数などで取得します。
例:
glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)wglGetProcAddress( "glGenFramebuffersEXT" );
また、glew というライブラリを使うことで、wglGetProcAddress を使用しなくても、いきなり glGenFramebuffersEXT(...) という感じで意識せずに使うことができます(オススメ)
wglGetProcAddress、glewInit などを使用する場合、必ず一つはコンテキストがないと失敗します。
コンテキストは wglCreateContext 関数で作成できます。
ids に n 個の問い合わせオブジェクトの識別 ID を返します。
クエリー用の描画開始を宣言します。
target には GL_SAMPLES_PASSED だけを指定できます。
id には glGenQueries で生成した ID を渡してください。
フラグメント処理が通ったかどうかの判定だけなのですが、レンダーステートは反映されます。
ですので、レンダリング時間を増やすようなモードは無効にしたほうがいいでしょう。
(例えば Stencil 処理など)
クエリー用の描画終了を宣言します。
target には同じく GL_SAMPLES_PASSED だけ指定可能です。
二つとも、まったく同じ内容の関数です。
指定したクエリー id のフラグメント処理が行われたかどうかを問い合わせます。
id には glGenQueries で生成し、glBeginQuery で描画が行われた ID を渡してください。
pname には GL_QUERRY_RESULT、GL_QUERY_RESULT_AVAILABLE が指定できます。
GL_QUERRY_RESULT の場合は、params にはパスしたフラグメントかサンプル(MRT が有効な場合)数が帰ります。
これで params が 0 だった場合は、オブジェクトが全て遮断されていることになります。
GL_QUERY_RESULT_AVAILABLE を指定した場合、params には GL_TRUE か GL_FALSE が入ります。
GL_TRUE の場合は、渡した id での問い合わせが可能なことを意味し、GL_FALSE の場合は不可能なことを意味します。
指定した n 個の ids を削除します。
ids には glGenQueries で生成した ID を渡してください。
最近のコメント