<20020528212406.4e3b0e8f.mutoh / highway.ne.jp>の記事において
JST時間2002年05月28日(火)21時24分06秒頃、むとうさんは書きました。

>>むとうです。

	桑形です。

>>> 		xasahi			終了時にGtk::mainで一度だけ例外発生
>>> 					(再現性無し/ログ未取得)
>>
>>ちょっとアレですね、これ(^^;)。

	再現しないのが何ともアレです :-)

>>> 		雫/Ruby(作りかけ放置)	Gdk::Window#draw_rgb32_imageを追加する
>>> 					patchをあてれば無事動作。
>>
>>これって、gdk_draw_rgb_32_image()のパッチかなんかでしょうか?
>>送っていただければ内容を確認した上で次リリースまでにマージしますが。

	イメージデータとしてStringを要求するあたりが仕様的に
	再考を要する所だと思いますが、一応送ってみます。

	Ruby/GTK 0.24の頃に作ったパッチですが0.28でもそのまま
	当たるようです。

	ruby-gnome/gtk/srcの下で

		patch < patch_file

	としてお使い下さい。

----  >8  choki!  8<  ----  >8  choki!  8<  -----
*** rbgdkdraw.c.org	Mon Dec 11 01:15:51 2000
--- rbgdkdraw.c	Mon Dec 11 01:16:48 2000
***************
*** 122,127 ****
--- 122,140 ----
  }
  
  static VALUE
+ gdkdraw_draw_rgb_32_image(self, gc, x, y, w, h, src, rowstride)
+     VALUE self, gc, x, y, w, h, src, rowstride;
+ {
+     gdk_draw_rgb_32_image(get_gdkdrawable(self), get_gdkgc(gc),
+                     NUM2INT(x), NUM2INT(y),
+                     NUM2INT(w), NUM2INT(h),
+                     GDK_RGB_DITHER_NONE,
+                     STR2CSTR(src),
+                     NUM2INT(rowstride));
+     return self;
+ }
+ 
+ static VALUE
  gdkdraw_draw_image(self, gc, image, xsrc, ysrc, xdst, ydst, w, h)
      VALUE self, gc, image, xsrc, ysrc, xdst, ydst, w, h;
  {
***************
*** 241,246 ****
--- 254,260 ----
      rb_define_method(gdkDrawable, "draw_text", gdkdraw_draw_text, 5);
      rb_define_method(gdkDrawable, "draw_pixmap", gdkdraw_draw_pmap, 8);
      rb_define_method(gdkDrawable, "draw_bitmap", gdkdraw_draw_bmap, 8);
+     rb_define_method(gdkDrawable, "draw_rgb32_image", gdkdraw_draw_rgb_32_image, 7);
      rb_define_method(gdkDrawable, "draw_image", gdkdraw_draw_image, 8);
      rb_define_method(gdkDrawable, "draw_points", gdkdraw_draw_pnts, 2);
      rb_define_method(gdkDrawable, "draw_segments", gdkdraw_draw_segs, 2);
----  >8  choki!  8<  ----  >8  choki!  8<  -----

	I/Fとしては

		Gdk::Window#draw_rgb32_image(
			 gc, x, y, width, height, buf, rowstride)

		    gc		Graphic Context		[Gdk::GC]
		    x		X座標描画開始位置	[Integer]
		    y		Y座標描画開始位置	[Integer]
		    width	描画幅			[Integer]
		    height	描画高			[Integer]
		    buf		イメージデータ		[String ]
		    rowstride	データ上の幅(ドット数)	[Integer]

	となっています。
	元のgdk_draw_rgb_32_image()では存在するdither指定は省いて
	います(特に必要無かったので)。
			


                                                   ζ
----                                            ^^y-
         くわがた@自宅
          kgt / kokone.to        − 年年歳歳花相似 歳歳年年人不同 −