FFI

Ruby-FFIでODEを動かす実験4

それっぽくなってきました。 細かいところでおかしなところありますが、当初イメージしていた形に近づいてきています。 とりあえず動いています。 require 'ffi-ode' require 'ffi-draw_stuff' ODE.dInitODE @world = ODE::World.new do |w| w.gravity = [0,…

Ruby-FFIでODEを動かす実験4

それっぽくなってきました。 細かいところでおかしなところありますが、当初イメージしていた形に近づいてきています。 とりあえず動いています。 require 'ffi-ode' require 'ffi-draw_stuff' ODE.dInitODE @world = ODE::World.new do |w| w.gravity = [0,…

Ruby-FFIでODEを動かす実験3

drawstuffについてメモします。 まだ、構想中ですが、drawstuffを以下のように書ければ記述がすっきりすると思っています。 #構想中 require 'ffi-draw_stuff' DrawStuff.simulation do |fn| fn.size = "600x400" fn.path_to_textures = "../textures" fn.st…

FFIにてRuby引数をC引数に変換してみる

ODEのdsSimulationLoopの引数に渡すため、文字列のArrayをC引数として扱うためには変換が必要です。 色々試して、とりあえず以下の方法なら渡せそうなのでメモします。 require 'ffi' @args = [$0, "-notex"] @argv = FFI::MemoryPointer.new :pointer, @arg…

Ruby-FFIでODEを動かす実験

Ruby-FFIでODE(Open Dynamics Engine)を試してみました。 最近、ODEの話題がめっきり減っている感じですが、ODEのサイトをのぞいてみるといつの間にかバージョンがode-0.12に上がっていました。 メンテナンスされているのは嬉しく思います。 さて、久しぶり…

Ruby-FFIでODEを動かす実験2

ODE付属のdrawstuffもFFIで動かしてみました。試した環境は、 ruby 1.9.3p194 @ CentOS on VMWare) jruby 1.7.0 @ Windows linuxでのコンパイルの場合、drawstuffの動的ライブラリは通常は生成されないので、工夫が必要です。 require 'ffi' module DrawStuf…

JRuby-FFIを使ってWindowsのMessageBoxを呼び出す

JRubyには、FFIライブラリがはじめから同封されています。 FFIは、Ruby/DLと類似しています。 以下にコードを記載します。 require 'ffi' module Win32 extend FFI::Library ffi_lib 'User32' ffi_convention :stdcall attach_function :message_box_a, :Mes…