<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Context Switch &#187; clutter</title>
	<atom:link href="http://blogs.gnome.org/ebassi/tag/clutter/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/ebassi</link>
	<description>Just another GNOME Blogs weblog</description>
	<lastBuildDate>Thu, 29 Sep 2011 19:13:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Days of Elaine</title>
		<link>http://blogs.gnome.org/ebassi/2011/09/29/days-of-elaine/</link>
		<comments>http://blogs.gnome.org/ebassi/2011/09/29/days-of-elaine/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 17:22:12 +0000</pubDate>
		<dc:creator>ebassi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[backends]]></category>
		<category><![CDATA[clutter]]></category>
		<category><![CDATA[gdk]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/ebassi/?p=420</guid>
		<description><![CDATA[oh man, it&#8217;s getting harder to find blog post titles&#8230; clutter 1.8 — last Friday I rolled the first release of the new stable 1.8 cycle, and Rob rolled the first stable release of the now standalone Cogl. it&#8217;s been six months of intense development, with lots of contributions, and I&#8217;d like to thank everyone [...]]]></description>
			<content:encoded><![CDATA[<p><em>oh man, it&#8217;s getting harder to find blog post titles&#8230;</em></p>
<p><strong>clutter 1.8</strong> — last Friday I rolled <a href="http://www.clutter-project.org/blogs/archive/2011-09/clutter-1.8.0-stable-release">the first release</a> of the new stable 1.8 cycle, and Rob rolled the <a href="http://lists.clutter-project.org/pipermail/clutter-announce/2011-September/000056.html">first stable release</a> of the now standalone Cogl. it&#8217;s been six months of intense development, with lots of contributions, and I&#8217;d like to thank everyone who submitted patches, opened bugs, added a translation, or even dropped by in the <code>#clutter</code> IRC channel to tell us that they were using Clutter for their awesome project.</p>
<p><strong>clutter 1.9</strong> — instead of resting after pushing 1.8 out of the door, we&#8217;re already hard at work on what will become 1.10 in six months. while Cogl is getting more and more refactoring to make the code base more understandable and reliable, as well as preparing the way for new features, Clutter is also getting some refactoring. today, for instance, I worked on building Clutter with multiple backends in the same shared object. one of my first major contributions to Clutter, back in the OpenedHand days, was to provide the ability to have multiple backends — and it worked pretty well: after the GLX backend we got a Windows backend, then a framebuffer backend, then an OS X backend. during the years, the implementation was amended here and there to avoid leaking the backend implementation all over the place, and we always resisted the temptation (and the outside pressure) to provide a full abstraction library for the windowing system akin to GDK. this allowed us to maintain the backend code lean and lightweight, to the point that it took me literally an hour this morning to go from the current <code>HEAD</code> of master to a test running with either GDK or GLX (depending on an environment variable) — and most of my changes were in the build system, not in the code.</p>
<p>as an example, <a href="http://pastebin.com/vYwQG5C3">this is a simple test program</a> that checks the backend support at both compile and run time; using Clutter from <a href="http://git.gnome.org/browse/clutter/log/?h=multi-backend">the multi-backend branch</a>, compiled with <code>--enable-x11</code> and <code>--enable-gdk</code>, you can run the example on X11 using:</p>
<pre>$ CLUTTER_BACKEND=x11 ./test-backend &amp;
$ CLUTTER_BACKEND=gdk ./test-backend &amp;</pre>
<div id="attachment_424" class="wp-caption aligncenter" style="width: 461px"><a href="http://blogs.gnome.org/ebassi/files/2011/09/test-backend.png"><img class="size-full wp-image-424 " src="http://blogs.gnome.org/ebassi/files/2011/09/test-backend.png" alt="" width="451" height="358" /></a><p class="wp-caption-text">multiple backends, same great taste</p></div>
<p>and have two instances, one using the native X11 backend and the other using the GDK backend.</p>
<p>there&#8217;s still some work to do, namely <a href="http://git.gnome.org/browse/clutter-gtk/log/?h=multi-backend">fixing Clutter-GTK to work with a multi-backend Clutter</a>, and making it use the GDK backend by default, if found. there&#8217;s also the issue of being able to use the <code>GLX_EXT_texture_from_pixmap</code> extension under the GDK backend on X11, if available, so that we can efficiently embed GTK widgets rendered off-screen like we can already do when using the Clutter X11 backend.</p>
<p>all in all, this work will help towards the goal of using Clutter and GTK together in a more organic fashion, and with fewer blocks and hacks in the middle.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/ebassi/2011/09/29/days-of-elaine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Constraints</title>
		<link>http://blogs.gnome.org/ebassi/2010/05/19/constraints/</link>
		<comments>http://blogs.gnome.org/ebassi/2010/05/19/constraints/#comments</comments>
		<pubDate>Wed, 19 May 2010 16:23:48 +0000</pubDate>
		<dc:creator>ebassi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[clutter]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[features]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/ebassi/?p=338</guid>
		<description><![CDATA[last time, I described the Effects in Clutter as anything that should affect the way an actor paints itself without sub-classing. this kind of modification of the behaviour of an Actor can also be applied to other areas, and leads to defining three different kinds of modifiers: Effects, which modify the way an actor paints [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.gnome.org/ebassi/2010/04/09/apology-song/">last time</a>, I described the Effects in Clutter as <em>anything that should affect the way an actor paints itself</em> without sub-classing.</p>
<p>this kind of modification of the behaviour of an Actor can also be applied to other areas, and leads to defining three different kinds of modifiers:</p>
<ul>
<li><strong>Effects</strong>, which modify the way an actor paints itself</li>
<li><strong>Actions</strong>, which modify the way an actor responds to user events</li>
<li><strong>Constraints</strong>, which modify the way an actor is positioned or sized</li>
</ul>
<p><a href="http://www.flickr.com/photos/goldberg/85307365/"><img class="size-full wp-image-347 alignright" title="Freedom? - by oleg.skl, CC by-nc 2.0" src="http://blogs.gnome.org/ebassi/files/2010/05/4006610480_bb3671eb31_m.jpg" alt="" width="240" height="180" /></a></p>
<p><em>being capable of being dragged using the pointer</em> can be defined as an action: it changes the way an Actor responds to user events (button press, motion, button release). in the same way, <em>update the X position using the X position of another actor</em> is a constraint placed on an Actor.</p>
<p>Clutter already has signals, properties and virtual functions for dealing with these modifiers, and they can be seen as the building blocks. What&#8217;s missing is a set of classes that wrap those building blocks into something that leads to run-time composition of effects, actions and constraints on top of an existing Actor class.</p>
<p>last week I started working on the implementation of these modifiers, and now I&#8217;m pretty close to a finalized API for Clutter 1.4. the usage of an action is pretty simple:</p>
<pre>
  ClutterAction *action = clutter_drag_action_new ();
  g_signal_connect (action, <span style="color: red;">"drag-motion"</span>,
                    G_CALLBACK (on_drag_motion),
                    <span style="color: purple;">NULL</span>);

  clutter_actor_add_action (some_actor, action)
  clutter_actor_set_reactive (actor, <span style="color: purple;">TRUE</span>);
</pre>
<p>the simplest implementation of a <code>ClutterDragAction::drag-motion</code> signal handler is:</p>
<pre>
  <span style="color: green;">static</span> <span style="color: green;">void</span>
  on_drag_motion (ClutterDragAction *action,
                  ClutterActor      *actor,
                  <span style="color: green;">float</span>              delta_x,
                  <span style="color: green;">float</span>              delta_y)
  {
    clutter_actor_move_by (actor, delta_x, delta_y);
  }</pre>
<p>there&#8217;s no fundamental difference for the constraints API; for instance, this positions an actor in the middle of another:</p>
<pre>
  ClutterConstraint *constraint;

  constraint = clutter_align_constraint_new (parent, CLUTTER_ALIGN_X_AXIS, 0.5);
  clutter_actor_add_constraint (some_actor, constraint);

  constraint = clutter_align_constraint_new (parent, CLUTTER_ALIGN_Y_AXIS, 0.5);
  clutter_actor_add_constraint (some_actor, constraint);</pre>
<p>it&#8217;s important to note that <em>parent</em> in this case can be <strong>any</strong> actor, and not necessarily the scene graph parent of <em>some_actor</em>.</p>
<p>this example binds the X coordinate of an actor to the X coordinate of another one, while keeping it Y aligned at the center of its parent:</p>
<pre>
  ClutterConstraint *constraint;

  constraint = clutter_bind_constraint_new (source, CLUTTER_BIND_X, 0.0);
  clutter_actor_add_constraint_with_name (some_actor, <span style="color: red;">"x-bind"</span>, source);

  constraint = clutter_align_constraint_new (parent, CLUTTER_ALIGN_Y_AXIS, 0.5);
  clutter_actor_add_constraint_with_name (some_actor, <span style="color: red;">"y-bind"</span>, constraint);
</pre>
<p><ins datetime="2010-05-21T09:44:00+00:00"><strong>Update</strong>: I&#8217;ve updated the example to use the newly added <code>add_constraint_with_name()</code> instead of <code>set_name()+add_constraint()</code>; I also changed the constraint names.</ins></p>
<p>now, I&#8217;ve added a call to <code>clutter_actor_meta_set_name()</code> in the mix because I might decide to animate the <code>offset</code> property of the <code>ClutterBindConstraint</code> using a specific syntax for <code>ClutterAnimation</code> ((the change is contained in <code>ClutterActor</code> so I&#8217;m not over-complicating the parsing code in the animation class itself; which also means that <code>ClutterAnimator</code> and the upcoming <code>ClutterState</code> classes will be able to use the same syntax to address action, effect and constraint properties)):</p>
<pre>
  <span style="color: green;">float</span> new_offset = clutter_actor_get_width (source) + h_padding;
  clutter_actor_animate (some_actor, CLUTTER_EASE_OUT_CUBIC, 500,
                         <span style="color: red;">"@constraints.x-bind.offset"</span>, new_offset,
                         <span style="color: red;">"opacity"</span>, 128,
                         <span style="color: purple;">NULL</span>);
</pre>
<p>the new syntax is still type checked, so you&#8217;ll get warnings if you&#8217;re using the wrong type or the wrong interval ((I&#8217;m still considering using a dotted notation; I might switch to a colon notation, or a slash notation. and yes: I know that it looks like the syntax for key access in CoreAnimation; it turns out that there aren&#8217;t many new ways to access an item in a path)).</p>
<p><strong>caveat</strong>: obviously, a constraint only applies to an actor that is in a fixed positioning layout manager.</p>
<p>the new classes and API are available in the <code>wip/actor-actions</code> branch <a href="http://git.clutter-project.org/cgit.cgi?url=clutter/log/&amp;h=wip/actor-actions">here</a> and <code>wip/constraints</code> branch <a href="http://git.clutter-project.org/cgit.cgi?url=clutter/log/&amp;h=wip/constraints">here</a>; there are also a couple of interactive tests that show you how actions and constraints can be used with existing actors. if all goes according to plan, I&#8217;ll merge them by the end of the week — following <a href="http://www.0d.be/2010/05/06/on-proposed-modules/">Frederic&#8217;s blog post</a>, I want to make a 1.3 snapshot release in time for GNOME 2.31.2.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/ebassi/2010/05/19/constraints/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Clutter Q&amp;A</title>
		<link>http://blogs.gnome.org/ebassi/2009/07/08/clutter-qa/</link>
		<comments>http://blogs.gnome.org/ebassi/2009/07/08/clutter-qa/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 14:49:01 +0000</pubDate>
		<dc:creator>ebassi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bof]]></category>
		<category><![CDATA[clutter]]></category>
		<category><![CDATA[gcds]]></category>
		<category><![CDATA[q-and-a]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/ebassi/2009/07/08/clutter-qa/</guid>
		<description><![CDATA[since there are free slots here at GCDS I was wondering if somebody wanted to have a sit down and ask questions about Clutter; bugs and feature requests for 1.2 are also welcomed. just send me an email at: ebassi at gnome dot org.]]></description>
			<content:encoded><![CDATA[<p>since there are free slots here at GCDS I was wondering if somebody wanted to have a sit down and ask questions about Clutter; bugs and feature requests for 1.2 are also welcomed. just send me an email at: <code>ebassi at gnome dot org</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/ebassi/2009/07/08/clutter-qa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Year of Clutter</title>
		<link>http://blogs.gnome.org/ebassi/2009/07/06/a-year-of-clutter/</link>
		<comments>http://blogs.gnome.org/ebassi/2009/07/06/a-year-of-clutter/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 12:00:09 +0000</pubDate>
		<dc:creator>ebassi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[clutter]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[guadec2009]]></category>
		<category><![CDATA[moblin]]></category>
		<category><![CDATA[talks]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/ebassi/?p=302</guid>
		<description><![CDATA[so, GUADEC/GCDS is now halfway through, and it&#8217;s been a pretty cool conference so far. obviously, lots of talks and loads of people to meet and to talk to. Rob did a roundup of the talks that the Intel/Moblin contingent has done and will do here. yesterday, like Josh and Rob ((also known as &#8220;the [...]]]></description>
			<content:encoded><![CDATA[<p>so, GUADEC/GCDS is now halfway through, and it&#8217;s been a pretty cool conference so far. obviously, lots of talks and loads of people to meet and to talk to.</p>
<p>Rob did <a href="http://www.robster.org.uk/blog/2009/07/04/moblin-talks-this-week-at-gcds/">a roundup of the talks</a> that the Intel/Moblin contingent has done and will do here.</p>
<p>yesterday, like Josh and Rob ((also known as &#8220;the yummy Rob Bradford&#8221;)), I had my talk on a technology used by Moblin and that can be (or are already) shared with the GNOME Mobile and Desktop platforms.</p>
<p>I talked about <a href="http://www.grancanariadesktopsummit.org/node/185">Clutter and the 1.0 release</a>; what does it mean, what will be the future direction and some of the highlights of the Clutter library in its current state. instead of using my 30 minutes to do a big talk, I decided to split them into four, five minutes <em>lightning talks</em>, plus an introduction and a conclusion (still five minutes each). I think it worked out pretty well, given the feedback, and I had much more fun while writing it and while delivering it. I&#8217;ll put it online on the <a href="http://www.moblin.org">moblin.org</a> website as soon as the network connection I have access to gets more reliable.</p>
<p>other talks worth of mention: obviously, the <a href="http://www.grancanariadesktopsummit.org/node/177">gnome-shell</a> and the <a href="http://www.grancanariadesktopsummit.org/node/178">zeitgest</a> ones, and alexl&#8217;s <a href="http://www.grancanariadesktopsummit.org/node/189">client-side-windows</a> talk. great work by everyone involved — you are all my heroes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/ebassi/2009/07/06/a-year-of-clutter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Wanting Comes in Waves</title>
		<link>http://blogs.gnome.org/ebassi/2009/05/19/the-wanting-comes-in-waves/</link>
		<comments>http://blogs.gnome.org/ebassi/2009/05/19/the-wanting-comes-in-waves/#comments</comments>
		<pubDate>Tue, 19 May 2009 17:44:21 +0000</pubDate>
		<dc:creator>ebassi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[clutter]]></category>
		<category><![CDATA[moblin]]></category>
		<category><![CDATA[release-plans]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/ebassi/?p=300</guid>
		<description><![CDATA[so, we&#8217;re finally free to show what we&#8217;ve been doing for the past six months: it&#8217;s been a great ride — and it&#8217;s just getting started. we&#8217;ve been pushing Clutter forward and center of an entire platform user experience, and it was up to to the task to a degree that excited me, and made [...]]]></description>
			<content:encoded><![CDATA[<p>so, we&#8217;re finally free to show what we&#8217;ve been doing for the past six months:</p>
<p><img class="aligncenter" src="http://moblin.org/sites/all/files/imagecache/image_post_width/u4/netbook_screenshot_animation.png" alt="" width="550" height="344" /></p>
<p>it&#8217;s been a great ride — and it&#8217;s just getting started. we&#8217;ve been pushing <a href="http://www.clutter-project.org">Clutter</a> forward and center of an entire platform user experience, and it was up to to the task to a degree that excited me, and made me incredibly proud.</p>
<p>the Moblin 2.0 UI is also one of the reasons we delayed the 1.0 release — the other being that we wanted to be confident in the API, since we&#8217;re going to be committing to it for the next two to three years. the wait is almost over: we&#8217;re planning a 1.0 release of Clutter by the end of May ((hopefully, it&#8217;ll all be fixed by that time <img src='http://blogs.gnome.org/ebassi/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':-)' class='wp-smiley' />  )). prepare yourself to have muchy more fun with Clutter!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/ebassi/2009/05/19/the-wanting-comes-in-waves/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Dream About Flying</title>
		<link>http://blogs.gnome.org/ebassi/2009/02/20/dream-about-flying/</link>
		<comments>http://blogs.gnome.org/ebassi/2009/02/20/dream-about-flying/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 21:48:23 +0000</pubDate>
		<dc:creator>ebassi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[clutter]]></category>
		<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/ebassi/?p=262</guid>
		<description><![CDATA[as usual — long time, no blog. my only excuse is that I was busy with other things: new job, new office, holidays&#8230; you know, whatever happens between coding. it&#8217;s that time of year again, and we&#8217;re nearing another Clutter release — this time it&#8217;s a special one, though, as it is 1.0.0. which also [...]]]></description>
			<content:encoded><![CDATA[<p>as usual — long time, no blog.</p>
<p>my only excuse is that I was busy with other things: new job, new office, holidays&#8230; you know, whatever happens between coding. <img src='http://blogs.gnome.org/ebassi/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
<p>it&#8217;s that time of year again, and we&#8217;re nearing another <a href="http://www.clutter-project.org">Clutter</a> release — this time it&#8217;s a special one, though, as it is <strong>1.0.0</strong>. which also means that the API will be frozen for the entire duration of the 1.x branch: only additions and deprecations will be allowed ((no worries about stagnation, though — we are already planning for 2.0, even though it&#8217;ll take at least a couple of years to get there)).</p>
<p>since we&#8217;re in the process of finalizing <a href="http://www.clutter-project.org/docs/clutter/unstable/">the 1.0 API</a> I thought about writing something about what changed, what was added and what has been removed for good.</p>
<p>let&#8217;s start with <strong>the Effects API</strong>. the Effects were meant to provide a high level API for simple, <em>fire-and-forget</em> animations ((even though people always tried to find new ways to abuse the term &#8220;fire-and-forget&#8221;)). they were sub-obtimal in the memory management — you had to keep around the EffectTemplate, the effects copied the timelines — and they weren&#8217;t <em>extensible</em> — writing your own effect would have been impossible without reimplementing the whole machinery. after the experiments done by <a href="http://codecave.org/">Øyvind</a> and <a href="http://blogs.gnome.org/ebassi/2008/05/23/road-to-somewhere">myself</a>, and after looking at what the high-level languages provided, I implemented <strong>a new implicit animation API</strong> — all based around <a href="http://www.clutter-project.org/docs/clutter/unstable/clutter-Implicit-Animations.html">a single object</a>, with the most automagic memory management possible:</p>
<pre>  <span style="color:blue">/* resize the actor in 250 milliseconds using a cubic easing
   * and attach a callback at the end of the animation
   */</span>
  ClutterAnimation *animation =
    clutter_actor_animate (actor, 250, CLUTTER_EASE_IN_CUBIC,
                           <span style="color:red">"width"</span>, 200,
                           <span style="color:red">"height"</span>, 200,
                           <span style="color:red">"color"</span>, &amp;new_color,
                           <span style="color:purple">NULL</span>);
  g_signal_connect (animation, <span style="color:red">"completed"</span>,
                    G_CALLBACK (on_animation_complete),
                    <span style="color:purple">NULL</span>);</pre>
<p>this should make a lot of people happy. the easing modes in particular are the same shared among various animation framworks, like <a href="http://code.google.com/p/tweener/">tweener</a> and <a href="http://jquery.com/">jQuery</a>.</p>
<p>what might make some people <em>slightly less</em> happy is the big API churn that <strong>removed both ClutterLabel and ClutterEntry</strong> and added <strong>ClutterText</strong>. the trade-off, though, is clearly in favour of <a href="http://www.clutter-project.org/docs/clutter/unstable/ClutterText.html">ClutterText</a>, as this is a base class for both editable and non-editable text displays; it supports pointer and keyboard selection, and multi-line as well as single-line editing.</p>
<p>another big changed happened on the low level COGL API, with the introduction of vertex buffers — which allow you to <strong>efficiently store arrays of vertex attributes</strong>; and, more importantly, with the introduction of the <strong>Materials</strong> which <strong>decouple the drawing operations with the fill operations</strong>. it also adds support for multi-texturing, colors and other GL features — on both GL and GLES.</p>
<p><a rel="attachment wp-att-267" href="http://blogs.gnome.org/ebassi/2009/02/20/dream-about-flying/gradient-test/"><img class="aligncenter size-medium wp-image-267" title="Gradients with Clutter" src="http://blogs.gnome.org/ebassi/files/2009/02/gradient-test-300x240.png" alt="Gradients with Clutter" width="300" height="240" /></a></p>
<p>after unifying Label and Entry, we also decided to <strong>unify BehaviourPath and BehaviourBspline</strong>; after that we added support for creating paths using SVG-like descriptions and for &#8220;replaying&#8221; a Path on a <code>cairo_t</code>. well, the <strong>Cairo integration</strong> is also another feature — <strong>clutter-cairo has been deprecated</strong> and its functionality moved inside <strong>ClutterCairoTexture</strong>.</p>
<p>one of the last minute additions has been <a href="http://www.clutter-project.org/docs/clutter/unstable/ClutterClone.html">ClutterClone</a><strong>, an efficient way to clone generic actors without using FBOs</strong> — which also supercedes the CloneTexture actor.</p>
<p>the Pango integration has been extended, and the internal <strong>Pango API exposed and officially supported</strong> — now you can display text using the Pango renderer and glyphs cache inside your own custom actors without using internal/unstable API.</p>
<p>thanks to Johan Dahlin and Owen Taylor, <strong>Clutter now generates GObject-Introspection data</strong> at compile time, so that runtime language bindings will be ready as soon as 1.0.0 hits the internets.</p>
<p>finally, there&#8217;s <strong>a ton of bug fixes</strong> in how we use GL, how we render text, how we relayout actors, etc.</p>
<p>hope you&#8217;ll have fun with Clutter!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/ebassi/2009/02/20/dream-about-flying/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Paint the Silence/3: Gran Finale</title>
		<link>http://blogs.gnome.org/ebassi/2009/02/20/paint-the-silence3-gran-finale/</link>
		<comments>http://blogs.gnome.org/ebassi/2009/02/20/paint-the-silence3-gran-finale/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 21:31:29 +0000</pubDate>
		<dc:creator>ebassi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[autotools]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[clutter]]></category>
		<category><![CDATA[shave]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/ebassi/?p=275</guid>
		<description><![CDATA[the third and final installment of the ongoing saga thanks to Damien, I finally found a way to shut up libtool and get a clean output for the build of a project: shave. Clutter is the first project using it, and I already easily caught compiler warnings ((even without using the anal-retentive compiler flags and [...]]]></description>
			<content:encoded><![CDATA[<p><em>the third and final installment of the <a href="http://blogs.gnome.org/ebassi/2007/12/08/paint-the-silence/">ongoing</a> <a href="http://blogs.gnome.org/ebassi/2008/01/25/paint-the-silence2/">saga</a></em></p>
<p>thanks to <a href="http://damien.lespiau.name/blog/2009/02/18/shave-making-the-autotools-output-sane/">Damien</a>, I finally found a way to shut up libtool and get a clean output for the build of a project: shave.</p>
<p><a href="http://www.clutter-project.org">Clutter</a> is the first project using it, and I already easily caught compiler warnings ((even without using the anal-retentive compiler flags and <code>-Werror</code>)) because my terminal is not full of crappy, four lines long incantations ((and even though I&#8217;m not an autotools ninja, at least I read the documentation and not just blindly copy stuff from various projects in the hope they work; so the autotools setup in Clutter is pretty much well tested so that I don&#8217;t need to worry that files get installed in a different location than expected)).</p>
<p>big <em>kudos</em> to Damien!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/ebassi/2009/02/20/paint-the-silence3-gran-finale/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  blogs.gnome.org/ebassi/tag/clutter/feed/ ) in 1.38796 seconds, on Feb 11th, 2012 at 10:13 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 11th, 2012 at 11:13 pm UTC -->
