module Easing

ちょと前にDXRuby Advent Calendar 2014の記事を書いたのだが、やっぱり突貫工事で記事を書くとちょっと辛いものがある。1日ぐらい寝かしてからアップすればよかったか。と言っても指摘事項はほんとに厳しいところを突かれていて、例えばティアリング防止なんか真面目に書き始めたら記事3日分とかになりそうな厄介な話だったりするので、色々はしょってあんな感じ。ティアリング防止やりたかったんだけどね。難しいんよね。ちなみにどんな話になるかというと、例えばバッファの扱いとflip/copyの違いとか、DirectXのスレッド制限とRubyのGVLに対するDXRubyの回避策としての内部マルチスレッド化とか、DirectXのPresent関数の仕様と挙動の話とか、DXRubyのFPS制御とか、V-Sync(垂直同期)とは何かとか。それらがどう絡み合って、結果、どういう理由で挫折したのか。書いたら誰かヒントくれるかもしれんなあ。
さておき、DXRuby Advent Calendar 2014といえば今日の記事がヤバい。wannabe53さんの「DXRubyをWineから使う」なんだけどもこれ、いま現在Wineを使えばMacとかlinuxとかで動いちゃうってことじゃん?ヤバいな。かなりヤバい。sdl2rいらない子?dxruby_sdlの弱点は描画まわり(拡縮回転)と衝突判定、シェーダだと思う。Ruby/SDL2を使えば描画まわりは改善できるとして、衝突判定はCで移植するしか無いが、シェーダはお手上げ。トランスレータが使えればもしかしたらOpenGLでいけるかも?みたいな?でもSDL2の描画と組み合わせるのは仕組み的にちょっと無理か。

っと、前置きが長くなってしまったが、今回は本編の記事もそれ以上に長い。jQueryのイージング機能をRubyで実装してみたよ、というネタである。

続きを読む