GObject Introspection

GObjectIntrospection - GNOME Live!
GObject Introspectionはスゴイヤツである。こいつがあれば、GObjectを使っているC言語のライブラリへのバインディングを自動的に生成してくれる。今までだったら、言語ごとで個別にバインディングを作成しないとダメなところを、ひとたびGObject Introspectionに対応させれば、オブジェクト指向のライブラリが好きな言語から簡単に使うことができる。

LuaからClutterを叩いてみる。MoonScriptで書いた。Luaではlua-lgiを使う。

#!/usr/bin/env moon

lgi = require 'lgi'

Clutter = lgi.require 'Clutter', '1.0'

Clutter.init arg

colors =
  black: Clutter.Color 0, 0, 0, 255
  green: Clutter.Color 0, 255, 0, 255

stage = with Clutter.Stage.get_default!
  \set_color colors.black
  \set_size 800, 600
  \set_title 'Lua Clutter'

rect = with Clutter.Rectangle {color: colors["green"]}
  \set_size 100, 100
  \set_position 100, 100

stage\add_actor rect
rect\show!

stage\show_all!

Clutter.main!