2013-07-01から1ヶ月間の記事一覧

アリーナのかいしんのいちげき

mrubyにはmrb_gc_arena_save()/mrb_gc_arena_restore()という関数があって、これを使わずにCでオブジェクトを作りまくるとエラーでコケる。この件について作者のMatzが直々に日記を書いておられる。(http://www.rubyist.net/~matz/20130731.html#p01) mruby…

ウィンドウシステムを考える

ちょこっと作ってみたのでGitHubにて公開中。 https://github.com/mirichi/DXRubyWS GUIぽいものを作ってみようという試み。やりたいことは以下の2点で、どっちを重視するかと言うと悩むところではある。 ・ゲーム向けGUIのベース ・Rubyオブジェクトを目で…

Fiberを使いやすくする仕掛け2

実際にFiberSpriteを使って何か作ろうと考えたとき、ゲームに登場するキャラはFiberを使うものと使わないものに分かれることに気づく。たとえば敵キャラ全体のスーパークラスを作ったときに、その派生クラスがFiberを使うものと使わないものに分かれてしまう…

Fiberを使いやすくする仕掛け

RubyのFiberはコルーチンというかマイクロスレッドというか、ユーザが中断ポイントを指定して任意に切り替えられるスレッドなので、これを使うとパターンで行動するキャラの制御ロジックが書きやすくなる。 Fiberは生成時にコードが必要で、たとえばSpriteな…

mallocのはなし

mrubyのkhash.hでハッシュテーブルを生成するときのmallocを削ったパッチが取り込まれたので今日はmalloc記念日。 https://github.com/mruby/mruby/commit/cdb23edf312e868bad3a7f8e8fc1a8aa556bcf4a■mallocとfree Cで動的にメモリを確保するには、標準関数…

画像の縮小アルゴリズム

DXRubyの公式掲示板で拡大フィルタの話が出たので思い出した話をメモ。■拡大縮小のアルゴリズム 画像の描画はCPUでやってもGPUでやっても、元の画像をVRAMに転送することで行う。等倍の転送ならそのままになるが、3D描画ではドットバイドットの描画がされる…

mrubyのハッシュ

直してプルリしたら受け付けられたので喜びのメモ。ハッシュについて。 https://github.com/mruby/mruby/commit/00353a3c42e0a65fbf2e2b355535ff6fce2e872a#include/mruby/khash.hRubyではインスタンス変数やメソッドのテーブルはハッシュテーブルとして保持…

DXRuby1.5.1devリリース

主にウィンドウメッセージループの別スレッド化とRenderTargetの自動updateまわりの修正である。他はそんなに大きくは変わっていないが、開発版を出し惜しみする意味もないのでここでリリースしておく。http://dxruby.sourceforge.jp/cgi-bin/hiki.cgi?%A5%D…