えーと前回どこまで書いたっけ?って前回も同じことかいたよ。
最近日記書いてなかったのは作業を優先してしまったため。あとべつに書くことそんなにないんだもの。
DTalkerっていうMac用日本語読み上げソフトのエンジンだけ購入。5000円也。これでMacしゃべらせられるよ。OS標準でつけてくれてもいいじゃんねぇ。
ということで早速自分用の実況用2chブラウザを読み上げに対応。辞書がしっかりしてるのかたいてい違和感なく読み上げてくれる。しかし長いの読ませた時に省略させないと延々しゃべっててこまるな。
あとは画面取り込みなど。WindowsでDWMが有効でも画面取り込みなんとかできないかなぁと思ったがちょっとやそっとではやっぱり無理っぽい。超頑張ってる人がいるのでそこは任せて俺は普通にGDIで取り込むことに。しかしGDIでもWDDM1.1ではGDIアクセラレーション効くみたいだしGDIサーフェスがあるくらいだし高速で取り込みとかできんのかねぇ。ARGB→BGRA変換があるから無理なんだろうか。
まあWindows用もなんとか出来はした。便利ではないが。
そういえば作ったDirectShowFilterで配信しようとしたらWindowsMediaEncoderさんが止まられてしまった。作業時間がおいつかないとかなんとか。なに言ってるんだこいつ。
よくわからんがVM内で動かしたWMEでは動いちゃってるのでなんともかんとも。というかドキュメントが足りなすぎてなんともしようがない。古いDDKにサンプルがあるらしいんだが、古いDDKってMSDNサブスクリプションに入ってないと落とせないのかなぁ。
とりあえず動く時は動くみたいだし環境側をなんとかするか。
次は圧縮をzlibからlzfに変えたいなぁ。あとはコア部分をライブラリ化してUIをもうちょっとなんとかしたい気もするわ。
Rikoの方はRenderStateをごりごり書き上げた!なんか苦労したけどなんとか収まったんでないでしょうか。
特にRuby側のインターフェースはなんてことないんだけど。
内部的には今までRubyで書いてた部分をC++化してたぶん速くなった。かも。めんどかったよ。
あとは状態の設定をする時には普通にOpenGLのコマンドを呼びまくってたんだけど、状態を内部で一旦保持して、以前の設定と今から設定する値が同じならOpenGLのコマンドは呼ばないよーってのをやるようにした。
これでなんかコマンド呼びすぎできもちわるかった状況が改善です。これがボトルネックになる状況は無かっただろうから、あくまでも気持ち悪かったのが改善した程度なんだが。
というか状態のPush/PopをOpenGL側でなく自前で書けるようになったのが実はでかい。OpenGLの状態スタックは実装によっては1段までしかいけない頼りないものだったので、その制限撤廃だけでずいぶん安心だわ。
ということでしばらくやってた拡張ライブラリ側の大整理はだいたい終わったかも。まだやりたいところはあるものの、それはまたそのうち。
あとはまた動くようにRuby側を直してデスクトップマスコットに戻ろうかね。