ClutterActor を使う
Clutter の ClutterActor を使うサンプル。単純にClutteStageの (100,100) の位置に (100,100) の大きさの Actor を CLUTTER_COLOR_RED で塗りつぶして表示します。
Makefile は、http://d.hatena.ne.jp/fut_nis/20120927/1348728462 を参照してください。
はじめは C のサンプルです。
#include <clutter/clutter.h> int main (int argc, char *argv[]) { ClutterStage *stage; ClutterActor *actor; if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) return 1; stage = (ClutterStage*) clutter_stage_new (); g_signal_connect (stage, "destroy", G_CALLBACK (clutter_main_quit), NULL); actor = clutter_actor_new (); clutter_actor_set_background_color (actor, clutter_color_get_static (CLUTTER_COLOR_RED)); clutter_actor_set_size (actor, 100, 100); clutter_actor_set_position (actor, 100, 100); clutter_actor_add_child ((ClutterActor*) stage, actor); clutter_actor_show ((ClutterActor*) stage); clutter_main (); return 0; }
背景色は、clutter_actor_set_background_color() で指定しています。ClutterStaticColor 列挙子 を使うと簡単です。clutter_color_get_static() で ClutterColor オブジェクトにしています。
大きさは、clutter_actor_set_size() で指定。位置は clutter_actor_set_position() で指定しています。位置は、ClutterContainer の相対位置になるようです。
ClutterStage に ClutterActor を追加するために、 clutter_actor_add_child() を使用しています。以前は、 clutter_container_add() を使用していたのですが、 1.10 以降は、clutter_actor_add_child() が推奨されています。
次は、 GJS のサンプルです。
#! /usr/bin/env gjs const Clutter = imports.gi.Clutter; Clutter.init(null); let stage = new Clutter.Stage(); stage.connect('destroy', Clutter.main_quit); let actor = new Clutter.Actor(); actor.set_background_color(Clutter.Color.get_static (Clutter.StaticColor.RED)); actor.set_size(100, 100); actor.set_position(100, 100); stage.add_child(actor); stage.show(); Clutter.main();
説明は不要ですね。