kumaryu日記
2006-10-17 やばい
_ あたまいたい
風邪っぽい。寝よ。
_ [Riko] エラー処理
とりあえず、最低限のエラー処理。
シンボルを渡さなきゃならん所で、間違ったシンボルを渡しても知らん顔してデフォルト値にされてた所を例外投げるようにした。
値の範囲エラーみたいなのはめんどいんで対処しなくてもいいよな。変な値入れるなと。入れた奴が悪い。
いまふと思い出したんだがOpenGLのエラー、全然見てねぇや。見た方がいいよなぁ。
エラー判定処理は最終的にコンパイル時にいじると外せるようにしとくと俺の精神衛生上いいかもしれんね。まあこの程度のオーバーヘッドは誤差だろうけど。
エラー処理とはちょっと違うかもしれんけど、必要なGL拡張とかOpenGLのバージョンを判別すんのはどうしよう。
クラス単位でくっきり分けられれば良いんだが、そうもいかない。
例えばFramebuffer#blitなんかはEXT_framebuffer_blitが無いとちゃんと動かないが、Framebuffer自体はEXT_framebuffer_objectがあれば動く。
メソッドで分けられるならまだしも、テクスチャフォーマットなんかだと、ARB_texture_floatが無いと浮動小数点テクスチャが作れないが、フォーマットはTexture#initializeの引数とかで指定すんだよな。
使う方は、いちいちどの機能ではどの拡張が必要で…なんて調べてられんわな。
今はOpenGLのラッパ程度だからまあなんとか調べもつくかもしれんけど、もっと上位のクラスが出来てきたらそんなわけにもいかんし。
あと、実行してみて無かったら例外という手もあるんだが、それだと良い環境で開発して、他の環境に持って行ったら意外と必要な拡張が無かった、とかなりそうだ。
うーん。でも実行してみて無かったら例外で良さそうな気がするぞ。有った場合もオプションで必要な拡張なりバージョンなりを列挙できるようにすれば、少なくとも通ったコードでどんな拡張なりバージョンが必要とされてるのかは分かるだろう。
あとドキュメントにこれが必要だから、と書いておくとかすれば良い。プログラムの最初でちゃんと拡張チェックもしてね。
これで行こう。一番単純で確実だね。
ついでにドキュメント書き中。
ドキュメントってRDocで良いのかなぁ。RDocだと日本語か英語かどちらかしか書けないという問題がある気がするが気にせず両方で書くことにした。
日本語で書いたその下に同じ内容のを英語で書く。UTF-8にすりゃ最悪ページがぶっこわれることは無いだろうという考え。あと英文は適当にも程があるような文だけど、それっぽい単語さえ並んでれば無いよりマシだろうという考え。
しかしRDocでリファレンス書き出してみたら、既に結構な数のクラスがあるのね…。これドキュメント付けてくのつらいよ…。こんじょー。