須藤です。

rcairo 1.5.1をリリースしました。
目玉はQuartzバックエンドのサポートです。

  http://cairographics.org/releases/rcairo-1.5.1.tar.gz

  http://cairographics.org/releases/rcairo-1.5.1.tar.gz.md5
  6778eaa1a32e289c47adcd40ef0f2595  rcairo-1.5.1.tar.gz

  http://cairographics.org/releases/rcairo-1.5.1.tar.gz.sha1
  ee50e43c3f9ac6ed28f5c820f498420585965b59  rcairo-1.5.1.tar.gz


  http://cairo.rubyforge.org/doc/ja/


変更点は以下の通りです。

  * Quartzサーフェスのサポート
  * バグ修正(NANKI Haruoさん、Binzoさん)
  * ruby 1.9.0サポート(Paul van Tilburgさん)
  * Cairo::WIN32Surface -> Cairo::Win32Surface
    * Cairo::WIN32Surfaceはこれからも使えますが、使わないで
      ください。


Quartzサポートですが、近くにMac OS Xがあったので勘で触りなが
らそれっぽく動くようにしたものなのでちゃんと動かないかもしれ
ません。Objective-CとかCocoaとかわかりませんし。
とりあえず、Ruby/Cocoaと一緒に使えるようにしました。

たぶん、こんな感じで使えると思います。

  require 'osx/cocoa'
  require 'cairo'

  ...

  cg = OSX::NSGraphicsContext.currentContext.graphicsPort
  width = 100
  height = 100
  surface = Cairo::QuartzSurface.new(cg, width, height)

  ...

最初はrequire 'osx/cocoa'しなくても中で勝手にrequireしちゃお
うかと思ったのですが、少し時間がかかるようだったのでやめまし
た。自分でrequireしてください。


ところで、C言語からRubyCocoaと仲良くする方法なのですが、もう
少し便利な方法を提供してくれる予定はありますか? > 藤本さん?木村さん?lrz?

やってみて、こんなのが欲しかったです。

  * extconf.rbでRubyCocoaフレームワークがある場所を検出する
    方法

    今は、RubyCocoaフレームワークがあるかどうかを検出せずに
    いつも-framework RubyCocoaしています。まぁ、絶対入ってい
    るいると思っていいのかしら。

      $DLDFLAGS << " -Wl,-framework,RubyCocoa"

  * Rubyオブジェクト <-> Objective-Cオブジェクト変換関数

    ざっくりながめた感じだとocobj_s_new()とrbobj_get_ocid()
    なんじゃないかと思って、自分でプロトタイプ宣言をして使い
    ました。.cから#include <ruby-cocoa.h>とかして使えると嬉
    しいです。そうすると、ruby-cocoa.hがある場所を-I...でき
    る方法も欲しくなるわけですが。