hi all;

it's July already, and we're closing in fast to the expected API
freeze for the 1.12 cycle: August 20, in time for GNOME 3.5.90.

looking at the road map for the 1.12 cycle
(http://live.gnome.org/Clutter/Roadmap), I think we're in a pretty
good shape already.  the biggest missing features are the
ClutterActorModel class (which should deprecate ClutterClone, as
described by the 7th Apocalypse -
https://live.gnome.org/Clutter/Apocalypses/Apocalypse7) and the
touch-based gesture recognisers that Lionel has been working on; there
is an additional small/medium clean up item (reimplement ClutterText's
painting as a ClutterActor.paint_node()), as well as two minor
features for ClutterFlowLayout (add a :snap-to-grid property and a
:max-line-length property).

some of the items in the road map introduce a series of deprecations;
I expect these to be the final round for the 1.12 (and 1.x) cycle:

  - ClutterText:position has been deprecated in favour of
ClutterText:cursor-position; the motivation for doing so should be
pretty obvious.
  - ClutterActor:depth has deprecated in favour of
ClutterActor:z-position; this has been an outstanding issue for the
past 5 years or so. the semantics are essentially the same, except
that :z-position doesn't call into
ClutterContainer.sort_depth_order().
  - ClutterActor:anchor-point, ClutterActor:scale-center-[xy],
ClutterActor:scale-gravity, ClutterActor:rotation-center-[xyz], and
ClutterActor:rotation-gravity-z have been deprecated in favour of the
simpler ClutterActor:pivot-point property, which provides a center for
all transformations, in normalized coordinate space. the
transformation center and anchor point situation has been a source of
confusion since the early days of Clutter, so this change will enable
developers to actually achieve what they intend to in an easier way.
  - clutter_threads_enter() and clutter_threads_leave() have been
deprecated, with no replacement. these two functions were meant to be
used to take the Clutter lock to update the UI from different threads;
this not only is utterly broken under the GL threading model, it's
also not portable. UI updates should be scheduled from different
threads by using the main loop.
  - ClutterTexture has been deprecated in favour of ClutterImage.
ClutterTexture is full of accrued side effects that make it brittle
when subclassing; the only capability available in ClutterTexture
that's missing in ClutterImage is the convenience API for loading an
image from a file: for this, you should be using GdkPixbuf on Linux,
and the platform-specific image loaders on Windows and MacOS (or
libpng/libjpeg directly, if needed). replicating an image loading API
inside Clutter is not an option in the medium/long term. sadly,
deprecating ClutterTexture has all kids of side-effects as well, given
that over the years we built subclasses when we really ought not to.
this means that the type will still exist for the benefit of those
subclasses, but the API itself will be marked as deprecated.

all of the above has already been done in the wip/master-next branch,
and will be merged into master proper soon. I'm preparing a set of
migration guides for the biggest items in the roadmap, to help out the
porting of existing code; any help is, obviously, much appreciated.

that's all for 1.12! now, for 1.99...

given the various time and resources constraints, I wanted to create a
clutter-1.12 branch earlier, this cycle - preferably by the end of the
month, before GUADEC - and open master for the 1.99 development work
which will lead to Clutter 2.0 hopefully by March 2013. the road map
for 1.99 is pretty long already, though it contains a lot of API clean
ups more than outright features. the current work of removing the
deprecated API and reorganising the code is happening in the the
wip/clutter-1.99 branch; as the name implies, the branch is a work in
progress, and it will be rebased pretty often. once I have something
that can pass distcheck with an updated test suite, I'll merge it back
into master, and start spinning developers snapshots.

as always, have fun with Clutter!

ciao,
 Emmanuele.

-- 
W: http://www.emmanuelebassi.name
B: http://blogs.gnome.org/ebassi/
_______________________________________________
clutter-app-devel-list mailing list
clutter-app-devel-list@clutter-project.org
http://lists.clutter-project.org/listinfo/clutter-app-devel-list

Reply via email to