3.1でたね。急に。
予想通り拡張を取り込んだだけな感じ。
あとdeprecatedなAPIが早速ARB拡張に追い出されてた。ただしglLineWidthは除く。いやこれは必要だろうよ。
取り込んだ拡張は、draw instanced、uniform buffer(元bindable uniform)、texture buffer、rectangle texture、primitive restartぐらいだっけ。あとOpenCL連携用のcopy bufferとか。
bindable uniformが入ったのはちょっと意外。まだちゃんと読んでないんだけど、バッファオブジェクトをテクスチャとしてサンプリングできるtexture bufferとかぶらないんだろうか。
意味は違うんだけど出来ることは同じような気がするんだよなぁ。
あとジオメトリシェーダが入らなかったのも意外。やはりOpenCL使えって事だろうか。俺もそう思う。
rectangle textureが超今さら入ったのがとても意外。 テクスチャ座標をテクセル単位で指定ってのは、結構便利だったりもするんでいいかも。
primitive restartが超超今さら入ったのがとてもとても意外。いままでEXT拡張にもARB拡張にも入ってなかったのに!
元はNV_primitive_restart拡張だけど、DrawElementsなんかでTriangle Stripsとか描こうとして頂点インデックス渡すときに、リスタート用の特殊なインデックスを指定するとそこでいったんストリップをぶちきって、次のインデックスから新しいストリップを始めてくれる機能。
これで複数ストリップが描画時にあんまり考えること無く一発でかけるので非常に便利。データ作るときもここでストリップぶちきってー、と特殊インデックス指定するだけだしね。
いままでなんで、というのとあきらめてたのにいまさらなんで、と言う気持ちでいっぱいです。
あーでも、ジオメトリシェーダやめてOpenCL使えよということであればこうなるか。
OpenCLで一気にデータ作っちゃったら一回で描画したいものね。ジオメトリシェーダ使わなければ渡したストリップが一旦バラバラにされたりしないしな。
まあちょっとみただけなので、またあとでちゃんと読もうかね。
え、NVIDIAがもう対応ドライバだしてんのか。まあ元から入ってたようなものばっかりだしなぁ。