|
From: Kouhei S. <ko...@co...> - 2013-05-25 04:39:02
|
須藤です。
Ruby-GNOME2プロジェクトはRuby-GNOME2 2.0.1をリリースしました!
このリリースからRuby 1.8のサポートをやめました。Ruby 1.8で使
いたい場合は2.0.0以前を使ってください。
このリリースからRuby/ClutterGStreamerを追加しました。これは
Clutter-GStreamerのバインディングで、GObject Introspectionベー
スで作っています。
Ruby/GTK3、Ruby/Clutter、Ruby/ClutterGtk、Ruby/GStreamer、
Ruby/ClutterGStreamerを使えば、ウィンドウの中にビデオを埋め
込めるようになります。ついに!
また、今回のリリースからGObject Introspectionベースのバイン
ディングでinitを呼ばなくてもよくなりました。たとえば、
Gst.initとしなくてもよくなっています。
== お願い
=== Ruby/GTK3に関して
Ruby/GTK3のサンプルの多くはRuby/GTK2から移行しきっていません。
これらのサンプルはまだたくさん警告を出力します。すべてのサン
プルをRuby/GTK2から移行したいと思っています。この作業を手伝っ
て欲しいです。
具体的には以下のような作業になります。
% gem install gtk3
% git clone gi...@gi...:ruby-gnome2/ruby-gnome2.git
% cd ruby-gnome2/gtk3/gtk-demo
% ruby main.rb # たくさんの警告がでます。
% vim xxx.rb # 警告やエラーを直して欲しいす。
# 期待する挙動はRuby/GTK2のサンプルを動かしてみてください。
# % cd ${RUBY_GNOME2_TOP_DIR}/gtk2/gtk-demo
# % ruby main.rb
# GTK+ 3のオリジナルのサンプルも参考にしてください。
# https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo
# もしかしたら、GTK+ 3から移行していないサンプルもあるか
# もしれません。そんなサンプルを見つけたらRuby/GTK3へポー
# ティングして欲しいです。
↑の作業をしてpull requestを送ってくれるとうれしいです。単位
は細かくていいです。大きいのがドカンとくるよりは細かく送って
くれたほうが確認しやすくてうれしいです。なので、少し進めたら
送ってくれると嬉しいです。
この作業の流れはgtk-demo用ですが、他にもgtk3/misc/と
gtk3/testgtk/にもサンプルがあります。これらに関しても手伝っ
てくれるとうれしいです。
=== GObject Introspectionベースのバインディングに関して
GObject Introspectionベースのバインディングは自動でクラスやメ
ソッドを定義できるので、少しのコードでバインディングを作るこ
とができます。しかし、自動で定義されたものがちゃんと動くかど
うかを確認しきれていません。そのあたりの作業を手伝ってもらえ
ないでしょうか。
ということ、やって欲しい作業ですが、サンプルを移植して欲しい
です。
こんな風にすると作業を開始できます。おかげさまでGStreamer、
GooCanvasの方は移植が進んでいます!
GStreamerの場合:
% gem install gobject-introspection
% git clone gi...@gi...:ruby-gnome2/ruby-gnome2.git
% cd ruby-gnome2/gstreamer
% cd vim sample/xxx.rb
require "gst"
# サンプルを移植する
% ruby -I sample sample/xxx.rb
GStreamerのサンプルは
http://cgit.freedesktop.org/gstreamer/gstreamer/tree/tests/examples/
以下にあるようです。例えば、以下がサンプルです。
http://cgit.freedesktop.org/gstreamer/gstreamer/tree/tests/examples/helloworld/helloworld.c
Clutter-GStreamerの場合:
% gem install gobject-introspection
% git clone gi...@gi...:ruby-gnome2/ruby-gnome2.git
% cd ruby-gnome2/clutter-gstreamer
% vim sample/xxx.rb
require "clutter-gst"
# Port a sample
% ruby -I sample sample/xxx.rb
Clutter-GStreamerのサンブルは以下にあります。
https://git.gnome.org/browse/clutter-gst/tree/examples
例えばこれです。
https://git.gnome.org/browse/clutter-gst/tree/examples/video-player.c
他にもJavaScriptで書かれたサンプルもあります。
https://git.gnome.org/browse/clutter-gst/tree/examples/video-wall.js
https://git.gnome.org/browse/clutter-gst/tree/examples/pieces.js
...
GooCanvasの場合:
% gem install gobject-introspection
% git clone gi...@gi...:ruby-gnome2/ruby-gnome2.git
% cd ruby-gnome2/goocanvas
% cd vim sample/xxx.rb
require "goocanvas"
# サンプルを移植する
% ruby -I sample sample/xxx.rb
GooCanvasのサンプルはここにあります。
http://git.gnome.org/browse/goocanvas/tree/demo
どれもサンプルをひとつ移植するごとにpull requestを送っても
らえるとうれしいです。
また、中にはうまく移植できないものもあるかもしれません。その
ときはpull requestかメーリングリストで教えてください。
Ruby/GObjectIntrospectionで未実装な機能が必要かもしれません。
== インストール方法
% gem install gtk2
% gem install gtk3
== Ruby-GNOME2 2.0.1: 2013-05-25
Ruby 1.8サポートを終了したリリース!
=== 変更点
==== 全体
* 改良
* Ruby 1.8サポートを終了。
* Windows用にバンドルしているバイナリのバージョンをもろ
もろ更新。
==== Ruby/Pango
* 改良
* Pango::CairoFontMap.set_defaultを追加。
* Windows用バイナリでfontconfigベースのフォントを使う機
能を有効にした。
* 初期化時にPango::CairoFcFontMapを定義するようにした。
(定義できる場合だけ)
* 初期化時にPango::CairoWin32FontMapを定義するようにした。
(定義できる場合だけ)
==== Ruby/GTK3
* 改良
* Gtk::Image#set_from_icon_setを追加。
[GitHub#150] [Detlef Reichlさんがパッチ提供]
* Gtk::Image#set_from_stockを追加。
[GitHub#150] [Detlef Reichlさんがパッチ提供]
* Gtk::Image#set_from_giconを追加。
[GitHub#150] [Detlef Reichlさんがパッチ提供]
* サンプルを更新。
[GitHUb#151] [Detlef Reichlさんがパッチ提供]
* 修正
* GC関連のクラッシュバグを集成。
[ruby-gnome2-devel-en] [Detlef Reichlさんが報告]
==== Ruby/GObjectIntrospection
* 改良
* いくつかの入力引数での所有権の委譲をサポート。
(StructとObjectのみ対応。)
* boxedオブジェクトの"(out caller-allocates)"パラメーター
に対応。
[ruby-gnome2-devel-ja] [Kentaro Fukuchiさんが報告]
* gpointerの入出力に対応。
[ruby-gnome2-devel-ja] [NAKAJIMA Takashiさんが報告]
* 修正
* 引数が足りない問題を修正。
[GitHub#154] [Masafumi Yokoyamaさんが報告]
==== RubyGStreamer
* 改良
* コールバックを呼ぶメソッドに対応。
[ruby-gnome2-devel-ja] [NAKAJIMA Takashiさんが報告]
* サンプルを更新
[GitHub#156][GitHub#159][GitHub#160][GitHub#161]
[NAKAJIMA Takashiさんがパッチ提供]
* Gst::Bus#set_handler対応。
[ruby-gnome2-devel-ja] [NAKAJIMA Takashiさんが報告]
* Gst::Controller対応。
[ruby-gnome2-devel-ja] [NAKAJIMA Takashiさんが提案]
* Gst.initの呼び出しを省略可能にした。
* 修正
* 範囲外の要素にアクセスしていた問題を修正。
==== Ruby/GooCanvas
* 改良
* Ruby/GObjectIntrospectionベースのバインディングに移行。
* Goo.initの呼び出しを省略可能にした。
* 修正
* サンプルを更新。
[GitHub#152][GitHub#153][GitHub#155][GitHub#157]
[Masafumi Yokoyamaさんがパッチ提供]
==== Ruby/Clutter
* 改良
* Clutter.initの呼び出しを省略可能にした。
* 修正
* サンプルが動かない問題を修正。
[ruby-gnome2-devel-ja] [Kentaro Fukuchiさんがパッチ提供]
==== Ruby/ClutterGtk
* 改良
* ClutterGtk.initの呼び出しを省略可能にした。
==== Ruby/ClutterGStreamer
* 追加。
==== Ruby/WebKitGtk
* 改良
* WebKitGtk.initの呼び出しを省略可能にした。
==== Ruby/WebKitGtk2
* 改良
* WebKitGtk2.initの呼び出しを省略可能にした。
=== 感謝
* Detlef Reichlさん
* NAKAJIMA Takashiさん
* Masafumi Yokoyamaさん
|