そりゃ2時過ぎてるもんな。
なにがもうちょっとで、だよ。
まだまだやることありました。
とりあえずROP周りの設定をRuby側も作った。
あ、面カリングの設定忘れてた…って、ROPの設定じゃないなぁ。
面カリングはラスタライザかなぁ。と思ったが、あれだな。まあROPで。
しかし表面の向きはROPの設定にしたくないな。表面の向きってのはCWとかCCWとかのあれ。
ROPの設定にするかどうかの分け方は、エフェクトファイルを書いた時に、エフェクトファイルでいじりたいかどうか。
どっちの面をカリングするかはエフェクトによって、というよりパスによって変えたいよね。
で、プリミティブの向きってのはどっちかというとモデルに依存するもんだよなぁ。つかそんなの動的に変えんなよって。
なので面カリングはROPState、プリミティブの向きは決めてないけど、Primitiveクラスの中に入れちゃおうかなぁ。
まあそんなのはともかく、足りないものは
こんだけ。いらない物も混じってるけど。
圧縮テクスチャはまあそのまま。
ShadowMapはシャドウマップ、というかテクスチャのRと比較を入れればいいだけ。あと比較モード。
ScissorTestは、忘れてた。ROPStateに追加しておこう。
PointParameterはどうしよう。これもプリミティブ関係なんだよね。 PointSpriteに必要なんでなんとかしたい。
というわけでPointSprite。なんかいまいちではあるんだが…。STG作る時には使えるかもしれんね。
LightとMaterialはどうしよう。シェーダ前提だから、べつに標準のLightとかMaterialの設定ができる必要は無いんだけどな。 めんどくなければ実装しようかなぁ。
PackedDepthStencilは…まあ簡単になんかできそうだから適当に対応しておこう。
FBOは、あ、忘れてた。これは必須だよ。pbufferは対応しないしね。
ColorClampは浮動小数点バッファの時使うかもしれない奴。FBOに入れておこう。
これだけ対応しておけばOpenGLのラッパとしては大丈夫だと思うんだけどなぁ。
あと適当なファイルフォーマット読み込みとモデルフォーマット作りだよねぇ。
ん? 適当なファイルフォーマットってなんだ? テクスチャファイル読み込みだな。