2009年11月のエントリ

楽譜描画。今までウェザタイ同様,DirectDrawで音符の画像を作って描画していたのだが,それだと連符や連桁の斜め線を描画するのが難しい。角度とか…。で,試しにGetDCしてGDIで描画してみたのだが,やっぱり線がギザギザして格好悪い。何かいい方法ないかなあ,ってことでいろいろ探した結果,DirectGraphics 9のID3DXLineを使うことにした。ID3DXLineにはアンチエイリアシング機能があるので良い感じの線を描ける。

で,これを使うにはDirectDrawベースじゃなくてDirect3Dベースにする必要があり大改造なのだが,こんなこともあろうかと描画ロジックを分離して作っていたおかげで2D→3Dへの移行は案外すんなり完了。結局DirectDrawのBltFastを使う描画ロジックとDirect3DのID3DXSpriteを使う描画ロジックを切り替えられるようになった。

これをウェザタイに逆輸入すればウェザタイ3D版ができていろいろなエフェクトが使えるわけだが,今更やろうとは思わないだろうなあ。

「テトリスを1時間強で作ってみた」動画が面白かった。「弾いてみた」とか「描いてみた」とかを見てるとそればっかりやってる人はやっぱりすごいんですね的なことがよく分かるので,誰かプログラマバージョン作らないかなあ,とか思ってたので興味深い。この,ちょっと作って動かして,を繰り返して段々形ができていく面白さがちゃんと伝わるようになっているのがいいですね。

現在メインマシンはWindows 7英語版なのだが,ウェザタイのオプション画面を開くと明らかに日本語版とデザインが違う。何でか不思議だったが,とりあえず原因判明。プロパティシートは,外側(フレームとタブ)と内側(ラベルとかがあるところ)で分かれているが,外側はWindowsが持ってるダイアログテンプレートをベースにしているのでシステムフォントになり,内側はリソースエディタで設定したフォントになり,食い違っている。例えば外側は英語版ではMS Shell Dlg,日本語版ではMS UI Gothicになったりするわけで,当然DLUが変わり,フレームの大きさが中身に比べて小さすぎたり大きすぎたりすることになる。

プロパティシートのコールバックでPSCB_PRECREATEを受け取ったときにダイアログテンプレートのフォント名をメモリ上で無理矢理書き換えればフォントを変えられそうだが,フォント名が同じ長さじゃないとダメだったりするし,今のところ解決策なし。

2007/03/08の日記に,VistaでHDDのパーティション容量を小さくする機能が「ボリュームの圧縮」というメニューになっていて誤訳だろう,って書いてたんだけど,Windows 7では「ボリュームの縮小」になっているらしい。これならなんとか分かりますね。ちなみに英語版では「Shrink Volume」になっていてより直感的。

Expression Studio 3日本語版発売。英語版を買おうと思ったらダウンロード販売の住所に「Japan」がなかったので日本語版まで待ってみた。Expression 2のときは,結局Expression Designをドローツール代わりにしか使ってなかったのだが,そろそろSilverlightも機能が充実してきたので何か作ってみようかな。ってことで読書中。