Hatena::ブログ(Diary)

mirichiの日記 このページをアンテナに追加 RSSフィード

2016-05-08

DXRuby1.4.4(´・ω・`)

RenderTargetバグの修正漏れによりWindow.resize時にコケることがある不具合が発生していたので修正してリリースした(´・ω・`)

まだSEGVする現象が残っているようで、自分の目で見てはいるのだが再現性が低く調べようがないのでとりあえずはこれで様子見。もし高確率で発生する人がいるならそのコードを提供頂けると非常に助かる。

2016-05-07

DXRuby1.4.3リリース中

とりあえずDXRuby1.4.3のgemだけリリース。パッケージ作るのいつも面倒だったので今回からはgemだけにしようかと考え中。

Ayameを同梱しようと思ったのだが、gemではどうもbinディレクトリにdllをコピーすることができないようなので挫折。やりかたわかる人がいたら教えて欲しいところ。なんかスクリプトが生成されてayame.dllって名前で格納されるんよね。

1.4.3ではこれまでに報告のあったいくつかのバグ(RenderTargetがGCで解放されるとたまにSEGVする、マウスドラッグ中にウィンドウ外にカーソルを移動してボタン離しても検出できない等)の修正と、パーリンノイズの生成機能追加、Font.newのオプション追加。マニュアルはこれから。

今バージョンからRuby2.0を外して2.3を追加した。あと互換用に入れていたDXRubyExはさすがに引きずるのも面倒になったので削除。

しばらく前から困ったことになっている停止中のWikiと掲示板についてはGithubに移行しようかと考えている。いずれソース管理もGithubかなー。

今後については1.5devでやっていたことで取り込めるものは基本的に全て1.4系に取り込んであるので、一度白紙にして新しい何かを追加しようかなと考えているところ。

候補は皆様お待ちかねの3Dと、SDLチックなイベント、あたり。

3Dは俺自身が3Dしない人なのでいまいちモチベーションが低かったりするが、それでもまあ、それっぽいインターフェイス作ってSDL2上で動かしたりはしていたので、DirectX9でも何かしらそれっぽい何かが作れるんじゃなかろうか、など考えてはいる。ただまあ、作れるのは低レベルなインターフェイスだけ(頂点バッファとシェーダとテクスチャを扱うぐらい)だろうから、それで誰かが何かすごいものを作ってくれるのかと言うときわめて怪しい。このご時勢、見栄えの良いものを作るのに必要な技術はハンパ無いのでな。

イベントはWindowsのメッセージの一部をイベントオブジェクトとして受け取れるような感じのもの。それの何が嬉しいかと言うと、現状固定フレームレートでしか基本的に動作できないDXRubyが、根本的にイベントドリブン動作になるわけなので、プログラムの書き方がごっそり変わる。Window.loop無しでコードが書ける。必要のない描画をしなくていいから負荷が下がるし、ツール類が作りやすくなる。かもしれない。ついでにマウスでウィンドウのサイズを変更できるようにしちゃったりできると一層良い。実現性は不明。やるならIMEの入力はイベント化すべきだし、RenderTargetの永続化も対応すべきだし、同時にデバイスロストのイベントも作るべきである。

これらの両方ができると3Dの物体をマウスでぐりぐりするツールが作りやすくなるということで非常に興味深いのであるが、どこまでできるか、どんだけかかるかはよくわからない。

まあ、そんな感じで。

2016-03-05

コンポーネント指向

前からぼんやりと考えてはいたのだが、なんとなくこんな感じ?ってイメージがなんとなくできてきたような気がしたのでなんとなく作ってみた、という話。

コンポーネント指向というとオブジェクト指向とかそんな感じの雰囲気に思えるが、実際のところ定義はさらに曖昧で、「何らかの機能を何らかの手法でまとめてコンポーネントと呼んで何らかの接続方法を提供する」みたいなものである。それがコンポーネント指向だと言うのならそうなのだろう。お前の中ではな。的な。

ということで機能をコンポーネントとして作って、それを基本コンポーネントに追加することで機能追加ができるような仕掛けを考えた。

続きを読む