質問者の片多です。

素早いレスありがとうございます。

> > | require 'DirectXGraphicsTest'
> > | 
> > | test1 = D3D::MATERIAL9.new( )
> >   d = test1.Diffuse
> >   d.r = 1.0
> > | 
> > | while true
> >     puts d.r
> > | end
> > 
> > とすると大丈夫だったりしませんかね。

それは大丈夫でした。
たまたまなのかもしれませんが、私の方ではエラーにならなかったです。


> 解放されるときにmalloc()されたのでないポインタをfree()しようと
> しています。COLORVALUE自身はfreeしないようにして、dmarkで
> MATERIAL9をマークするようにすればうまくいくかも知れません。

Drap_Wrap_Structにでてくるmarkの意味と具体的な利用方法が全く理解できてい
ない私ですが、なかださんの添付ファイルを利用してみたところ、ばっちりうま
くいきました。

markに加えてst.hの部分もほとんど理解できていませんが、なんだかうまくいき
そうな予感です。
ところでこのプログラムはRuby-1.8用ですよね?
1.6.8ではst_data_tが定義されてませんでした。
それからst.hのドキュメントってどこかにあるのでしょうか?
一応がんばって理解してみたいと思ってます。

ともかくこの部分をマクロ化し、大元のプログラムに組み込んでみたいと思いま
す。
うまくいけば「ライトにあたる車がくるくる回る」はずなんです。

-- 
中国ポリテクカレッジ 情報技術科 片多 太一
TEL:086-526-6570(情報技術科直通)
FAX:086-523-0104(代表FAX)