Re: [clutter] pyclutter: Texture from pixbuf

2008-10-14 Thread Emmanuele Bassi
On Tue, 2008-10-14 at 11:36 +0300, Tero Saarni wrote:

 How can I create Texture from pixbuf on clutter 0.8.2 + pyclutter
 bindings from SVN?

the ChangeLog has all the details, but in short:

  tex = clutter.Texture(filename=redhand.png)

if you need to just load files, ClutterTexture already does that without
exposing the GdkPixbuf API.

 Texture(filename=redhand.png) works but I have the image as pixbuf
 originally.

don't. if you really need, use the set_from_rgb_data() method with the
various values from GdkPixbuf: there's a direct mapping from what's
required from ClutterTexture (width, height, rowstride, alpha channel
and pixel data) to what GdkPixbuf provides.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center
-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Does pyclutter require GTK/X11?

2008-10-03 Thread Emmanuele Bassi
On Fri, 2008-10-03 at 13:29 -0400, Schmottlach, Glenn wrote:
 I built clutter using “–with-flavour=eglnative” and it is my intention
 to use it with the native OpenGLES libraries available for my embedded
 target (an iMX31-3Stack eval board). In this environment, there will
 be no X11 support nor GTK (since GTK only supports X11 or DirectFB
 backends). I’d like to use pyclutter to quickly prototype some
 applications but unfortunately it appears to have a dependency on
 pygtk (and consequently GTK). Is there anyway to build pyclutter and
 remove those dependencies?

the pygtk maintainer moved some of the required infrastructure into
pygobject during this development cycle. if pyclutter starts depending
on bleeding edge pygobject then the dependency on pygtk can mostly be
removed - I hope.

I'll try and see if pyclutter trunk can do the switch, otherwise it'll
have to wait for pyclutter 1.0.

  If I want to use clutter in an environment that only supports
 OpenGLES (with no X11 bindings) am I restricted to just using the ‘C’
 binding?

using python on embedded devices in my experiene isn't such a good idea,
especially for long running tasks, given the tendency of python  2.6 to
leak like a victorian pipe.

if you want to rapidly prototype something I can suggest Vala[1], but
it's still a moving target so it might not fit the bill.

ciao,
 Emmanuele.

[1] http://live.gnome.org/Vala

-- 
Emmanuele Bassi, Intel Open Source Technology Center
-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] [ANNOUNCE] Clutter 0.820 - Perl bindings

2008-10-02 Thread Emmanuele Bassi
hi everyone;

I've just released Clutter 0.820, the Perl bindings for the 0.8 stable
cycle of the Clutter GUI toolkit.

You can download them from:

  http://www.clutter-project.org/sources/clutter-perl/0.8/

Or you can find them on CPAN:

  http://search.cpan.org/dist/Clutter/

Clutter is an open source software library for creating fast, visually
rich and animated graphical user interfaces. Clutter uses OpenGL or
OpenGL/ES to provide hardware acceleration to user interfaces. Clutter
can be used as a canvas or as a base for writing a full toolkit on both
desktop and embedded devices. Clutter is portable on various platforms,
being developed on Linux and tested on Windows and OSX with native
ports.

Clutter has integration libraries for quickly developing applications
with GTK+, GStreamer and Cairo.

Clutter-Perl is the collective name for the Perl bindings for the
Clutter core API and integration libraries

The Clutter Perl bindings allow you to write canvas-based applications
in a Perlish and object-oriented way, freeing you from having to care
about casting and memory management of the original Clutter C API, and
yet remaining close to its spirit.

Clutter is released under the terms of the GNU Lesser General Public
Library, version 2.1. The Clutter-Perl bindings are released on the same
terms as Clutter and Perl themselves.

You can find out more about Clutter at http://www.clutter-project.org

This module requires these other modules and libraries:

  perl  = 5.8.0
  Glib  = 1.180 (Perl module)
  Cairo = 1.0.0 (Perl module)
  Gtk2  = 1.140 (Perl module)
  Clutter   = 0.8.2 (C library)
  Clutter-GStreamer = 0.8.0 (C library) [optional]
  Clutter-GTK+  = 0.8.1 (C library) [optional]
  Clutter-Cairo = 0.8.1 (C library) [optional]

In order to build it from source, you'll also need:

  ExtUtils::Depends   = 0.2
  ExtUtils::PkgConfig = 1.03

When building with support for Clutter-Cairo, the Cairo Perl module is
also required.

When building with support for Clutter-GStreamer, the GStreamer Perl
module is also required.

Changes for the 0.820 release
=
* Depend on Clutter 0.8.2
* Fix a typo in Clutter::Cogl-frustum()
* Add a Clutter::Cookbook POD

Since I've forgot to send the announcement emails for the previous
releases of the 0.800 cycle of the bindings, here are the changes:

Changes for the 0.802 release
=
* Update the META.yml generation so that the contents are useful
  for CPAN and testers
* Add some initial wrappers for the COGL texture API; still
  experimental, will require more testing
* Fix the assignment of built-in alpha functions when creating
  a new Clutter::Alpha [Andrew Ruthven]
* Documentation fixes
* Better coverage for the test suite

Changes for the 0.801 release
=
* Compilation fixes required for compiling with Clutter installed
  from the 0.8.0 tarball
* Wrap Clutter::Gst::Audio::get_playbin()
* Wrap Clutter::Gst::VideoSink
* Enhance Clutter::Model and Clutter::Model::Iter bindings to
  allow pure-Perl implementations

Clutter 0.800
=
* Require clutter-0.8 = 0.8.0
* Resync with upstream API
* Wrap newly exposed COGL API as Clutter::Cogl
* Wrap newly added Gtk2::Clutter utility API
* Allow full implementation of Clutter::Container

have fun with Clutter!

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] ion pdf cube

2008-10-02 Thread Emmanuele Bassi
hi;

On Thu, 2008-10-02 at 15:54 +0200, Gerardo Di Iorio wrote:
 Hi,
 how do find the code of ion (pdf cube viewer)
 i have see this video.
 
 http://www.youtube.com/watch?v=chbGB06TPrI

you'll have to ask Alberto Ruiz, the author and uploader of the video.

his blog is here:

  http://aruiz.typepad.com/

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Transparent stage? Stage resized signals?

2008-10-01 Thread Emmanuele Bassi
On Wed, 2008-10-01 at 11:42 +0200, Jörn Reder wrote:

 I have to questions:
 
 1.) Is it possible having a transparent stage on a X11 desktop?
 Changing the opacity property doesn't work as expected.

you need the X server to return a RGBA window. this will probably work
on nvidia but not on intel or ati drivers.

 2.) I can't find any signals to catch stage resizing. Am
 I missing something?

notify::allocation, notify::width, notify::height are all signals that
can be used to know the change of size of any actor - including the
stage.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Transparent stage? Stage resized signals?

2008-10-01 Thread Emmanuele Bassi
On Wed, 2008-10-01 at 13:02 +0200, Jörn Reder wrote:
 Emmanuele Bassi wrote:
 
   1.) Is it possible having a transparent stage on a X11 desktop?
   Changing the opacity property doesn't work as expected.
  
  you need the X server to return a RGBA window. this will probably work
  on nvidia but not on intel or ati drivers.
 
 Ok, now the obvious question ;) How do I manage this? I'am running a 
 desktop with composite extension (simply xcompmgr, NVidia GLX), so all 
 requirements should be met.

apparently, it used to work by default on older revisions of the nvidia
drivers. you can try setting the _NET_WM_WINDOW_OPACITY property or
controlling the opacity using another composite manager than xcompmgr,
like metacity.

   2.) I can't find any signals to catch stage resizing. Am
   I missing something?
  
  notify::allocation, notify::width, notify::height are all signals that
  can be used to know the change of size of any actor - including the
  stage.
 
 Thanks, works perfect, but I can't find these in the docs (suspected 
 them in ClutterActor).

:allocation, :width and :height are ClutterActor properties; like all
GObject properties, you get notification when their value changes. the
signal emitted in that case is ::notify. ::notify is a detailed signal -
meaning that callbacks can be attached to specific details. in this
case, the detail is the property name. so, notify::allocation will
call your function each time the ::notify signal has been called for
the :allocation property.

you should probably have a look at the GObject documentation and API
reference.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Few Questions

2008-09-29 Thread Emmanuele Bassi
On Mon, 2008-09-29 at 18:58 +0530, Amit wrote:

 Its been a week or so, since I start playing around Clutter and I'm
 really amused to see the usage of Clutter in creating nice graphical
 applications. Its been a fantastic effort from you guys :).
 Programming such a nice looking animated applications have never been
 so easy and exciting.

thanks.

 1. Apart from building nice looking applications, is it feasible to
 create a Clutter based Desktop Environment (a full fledged desktop
 more on the lines of your astro-desktop sample toy)? I'm asking this
 more from an embedded(mobile) point of view.

sure. Clutter is meant as a low-level toolkit and can (and should) be
used to build your own set of actors.

 2. Just for confirmation :), whether I can develop Clutter based
 application for a small screen display lets say 320x240 for example.

I can't see why not.

 3. Is there any commercial version of Clutter available?

the only version of Clutter is the one hosted on the server.

 4. What about the licensing limitations of Clutter? Is it available
 under licenses other than GPL and LGPL like Mozilla, BSD etc

no: Clutter is only available under the LGPL v2.1 (or later).

 ? Was
 there any impact on the licensing terms of Clutter Project following
 the recent acquisition of OpenHanded by Intel.

(it was OpenedHand :-))

none at all: Clutter is and remains open source, under the same
licensing terms.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Texture Actor limits

2008-09-29 Thread Emmanuele Bassi
On Mon, 2008-09-29 at 08:33 -0700, ere wer wrote:

I'll let someone else reply on the texture limit question.

 PS On a sidenote, COGL vala bindings are quite incomplete, is planned to be 
 finished anytime soon?

the COGL API does not fall under the same guarantees of the rest of
Clutter - that is: it might be changed even in the same minor-release
cycle. the API is also quite C-specific and translating it in high-level
languages is quite difficult. for both reasons I'm very careful in
wrapping COGL in the language bindings I maintain (Perl, Vala, Python).

having said that, I gladly accept patches for the COGL vapi file, as
well as the Clutter one.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Drawing in the background while idle

2008-09-25 Thread Emmanuele Bassi
On Thu, 2008-09-25 at 00:48 +0100, Robert Bragg wrote:

 The nicest approach we've come up with so far seems to be getting
 Clutter to internally push the rendering out to a worker thread by
 moving the calls to glXSwapBuffer into a new thread. Since writing multi
 threaded GL apps is pretty common amongst game developers etc I think
 there should be very little risk for Clutter to internally start doing
 GL calls from different threads. This approach also completely hides
 threading issues from developers. (Usually for the win!)

except:

  - the locking system will have to be re-evaluated because if you
are accessing GLib data structures from different threads you
must have locking in place

  - Clutter requires to be linked against gthread-2.0

  - Clutter requires every application to initialize the threading
code paths in GLib/GObject

- or -

  - Clutter needs to initialize the threading code paths in GLib
and GObject

  - we need a MainContext-aware API for our internal API dealing
with the main loop, since we're now using the default main
context

and while GLib data structures and MainLoop are usually thread safe,
GType instantiation is not entirely thread safe (try creating two new
instances of the same class from the same thread).

not that I'm saying this should not be done: I'd rather go along the way
of using threads and solve a lot of the performance issues; what I'm
saying is that this is not a change that will be implemented overnight.

 Note, this stuff is still in the stages of discussion/experimentation,
 so no guesses if this will actually make it into Clutter proper any time
 soon, or if we might come up with a different approach. If you are
 interested in experimenting with the patches please feel free to give
 feedback. Of course you'll also need to tweak the python bindings for
 clutter_stage_get_actor_at_pos yourself for now.

threading and python are two very different beasts, with different
interactions at different levels. python is using user-level threads in
its API, as far as I know, and this is already not entirely well
behaving with the concept of GLib thread safety. so, beware and caveat
emptor apply.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] [ANNOUNCE] Clutter 0.8.2 (core) - Stable release

2008-09-25 Thread Emmanuele Bassi
hi everyone;

Clutter 0.8.2 is now available for download at:

  http://www.clutter-project.org/sources/clutter/0.8/

MD5 Checksums:

  2e86641254260b355d235ee202918b1c  clutter-0.8.2.tar.gz
  6fd2c0e63d904523a773736cbb45d176  clutter-0.8.2.tar.bz2

Clutter is an open source software library for creating fast, visually
rich and animated graphical user interfaces. Clutter is licensed under
the terms of the GNU Lesser General Public License version 2.1.

Clutter currently requires:

  * GLib = 2.14.0
  * Pango 1.18
  * OpenGL = 1.4, OpenGL ES 1.1 or OpenGL ES 2.0
  * GLX, SDL, WGL, Quartz or an EGL Implementation

The official website is: http://www.clutter-project.org
The Clutter blog is at:  http://www.clutter-project.org/blog
To subscribe to the Clutter mailing list, send mail to: clutter
[EMAIL PROTECTED] 
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference: http://www.clutter-project.org/docs/clutter/0.7/

* Notes

   o This is a stable release of Clutter's 0.8 cycle

   o This version is fully API and ABI compatible with the previous
 0.8.0 release and further 0.8 releases.

   o This version is parallel installable with Clutter 0.6.

   o Installing this version will overwrite the files from the
 installation of a release of the 0.8 series or the installation
 of a SVN checkout of the clutter-0-8 branch.

   o Bugs should be reported to: http://bugzilla.o-hand.com

What's new in Clutter 0.8.2
---

   o Add constructor-only properties for the :container and :actor
 properties of ClutterChildMeta
   o Resync the Clutter keysyms with X.org ones.
   o Documentation fixes and improvements
   o Allow defining ClutterColor as an object or an array inside
 ClutterScript UI definitions
   o Added the missing :perspective property to ClutterStage
   o Fixed the upper and lower boundaries for ClutterUnit and
 ClutterFixed properties
   o Fix a bug that prevented disabling sorting on ClutterModel
   o Fix a bug in clutter_timeline_list_markers()
   o Queue a redraw when the clip is changed
   o Optimize calls to push and pop the matrix when painting
   o Add a variable to the pkgconfig file for extracting the
 COGL backend, for configure-time checks
   o Fix a typo in cogl_path_rel_curve_to()
   o Fix showing the cursor after it being hidden once
   o Add a function for obtaining Clutter's option group without
 initializing Clutter

List of bugs fixed since 0.8.0
--

   o #856 - Teardown sequence is borked
   o #945 - Clipping+fbo cloning bugs
   o #1010 - ClutterLabel does not update the layout (again)
   o #1020 - TFP resyncing on MapNotify/ConfigureNotify [Andy Wingo]
   o #1033 - Manually parsing command line options prevents initializing clutter
   o #1034 - Picking doesn't work on Eee PC
   o #1038 - Clutter 0.8 won't build due to redefined functions
   o #1044 - cogl_get_viewport error
   o #1047 - API documentation from release tarball is not installed by make 
install [Mirco Müller]
   o #1048 - SIGFPE in cogl_texture_set_region() with nvidia [Gwenole 
Beauchesne]
   o #1062 - clutter_actor_query_coords() replacement in 0.8 [Gwenole 
Beauchesne]
   o #1069 - Warnings with ClutterScore
   o #1071 - clutter_timeline_get_duration doesn't always work
   o #1075 - Difficult to bind clutter_stage_new
   o #1080 - clutter_stage_read_pixels has upside-down y coordinate
   o #1082 - Texture bitmap is destroyed in wrong way
   o #1085 - Cursor is in wrong position on ClutterEntry if set x-align property
   o #1090 - Label somtimes returns natural_width  min_width [Johan Bilien]
   o #1091 - WM_MOUSEWHEEL (scroll-event) not handled correctly [Roman Yazmin]
   o #1099 - No ClutterScript API to get a list of IDs in a given file [Noah 
Gibbs]
   o #1100 - WM_SIZE not handled correctly, user_resize and window_style 
correction
   o #1103 - Two typos in clutter documentation
   o #1121 - Setting anchor point doesn't work if set too early
   o #1124 - Clutter causes an additional size request in each allocation 
[Johan Bilien]
   o #1125 - Save an extra pango_layout_get_size in many cases [Johan Bilien]
   o #1130 - CLUTTER_MOTION is not emitted when time goes backwards. [Pierce 
Liu]
   o #1137 - Setting the anchor point does not trigger a re-paint
   o #1145 - Flicker on resize the window
   o #1154 - clutter_timeout_pool_new() documentation doesn't say how to free 
[Murray Cumming]

Special thanks to all the contributors:
---
Gwenole Beauchesne
Johan Bilien
Murray Cumming
Pierce Liu
Noah Gibbs
Roman Yazmin
Andy Wingo
Mirco Müller

Have fun with Clutter!

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] Branching

2008-09-25 Thread Emmanuele Bassi
hi all;

after the 0.8.2 release, Clutter core and other submodules branched off
to allow further development to happen on trunk.

  clutter   - clutter/branches/clutter-0-8
  clutter-cairo - clutter/branches/clutter-cairo-0-8
  clutter-gst   - clutter/branches/clutter-gst-0-8
  clutter-gtk   - clutter/branches/clutter-gtk-0-8

other modules and bindings will follow suite as soon as possible.

current Clutter trunk will be used for the development cycle which will
lead to the 1.0 release.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Drawing in the background while idle

2008-09-24 Thread Emmanuele Bassi
gaah, I forgot to add some explanatory word. didn't mean to sound rude.

On Wed, 2008-09-24 at 12:12 +0100, Emmanuele Bassi wrote:
 On Wed, 2008-09-24 at 07:01 -0400, Pierre-Luc Beaudoin wrote:
 
  Actually, that's not clear from what I gave you, but you can call
  idle_add directly on gobject:
  
  import gobject
  
  if __name__ == '__main__':
  #here or anywhere else btw
  gobject.idle_add(on_idle, data)
 
 clutter.main()

you need clutter.main() - or any other GLib main loop - otherwise the
idle handlers (like the timeout handlers) will not run.

  
  def on_idle(self, data):
  #do something
 return False   # to remove the idle handler
# from the main loop; True will
# keep it attached

I never remember what's the default behaviour of python, here; Perl
would take the return value for the last function and put it on the
stack as the return value for the function - so:

  sub on_idle {
  # do something
  }

would return what the last function of the block returned, even without
an explitic return. this can be confusing and lead to weird bugs.

in any case, always put a return value for your idle, timeout and event
handlers.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter on iPhone

2008-09-24 Thread Emmanuele Bassi
On Wed, 2008-09-24 at 09:16 -0400, Pierre-Luc Beaudoin wrote:
 
  In the clutter source tree there is a non-supported experimental fruity
  backend that was developed targeting the hardware found in the iphone/ipod
  touches. This backend needs a working cross compilation environment capable
  that includes headers and compilers necessary to integrate with the 
  frameworks
  on the devices.

 While being experimental, does it supports things such as multitouch?

yes.

 Also, this means that you need to bring Clutter's deps (such as glib) on
 the iphone, did you have issues when doing that?

no issues, as far as I know.

the iPhone is just an ARM device; GLib has been compiled on ARM
platforms for a while, now.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter model warning: Invalid type GEnum?

2008-09-22 Thread Emmanuele Bassi
On Mon, 2008-09-22 at 13:26 +0800, Pizza wrote:
 Hi,
 I tried to use
 
 clutter_list_model_new (N_COLUMNS,G_TYPE_BOOLEAN, Icon,G_TYPE_ENUM,
 Content)
 
 to create a list model, but when I ran my program, a warning message
 appeared:
 
 Clutter-WARNING **: clutter-list-model.c:741: Invalid type GEnum

mmh, apparently I forgot to add G_TYPE_ENUM to the whitelist of
fundamental types. will commit a fix before 0.8.2.

for the time being, you can use G_TYPE_INT.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Missing symbols when building clutter-gtk with EGL-native Libraries

2008-09-18 Thread Emmanuele Bassi
On Wed, 2008-09-17 at 15:52 -0400, Schmottlach, Glenn wrote:
 I am *attempting* to build clutter-gtk for the Freescale iMX31-3stack 
 evaluation board using several Poky recipes I developed. I built the core 
 clutter library using the native EGL libraries provided by Freescale (e.g. 
 --with-flavour=eglnative). All the packages (clutter, clutter-gtk, 
 clutter-cairo, etc...) are being built from the trunk of the svn depot.
 
 When the compiler goes to link the clutter-gtk library is complains about 
 missing symbols:
 
 | ../clutter-gtk/.libs/libclutter-gtk-0.8.so: undefined reference to 
 `clutter_x11_set_display'
 | ../clutter-gtk/.libs/libclutter-gtk-0.8.so: undefined reference to 
 `clutter_x11_set_stage_foreign'
 | ../clutter-gtk/.libs/libclutter-gtk-0.8.so: undefined reference to 
 `clutter_x11_get_stage_visual'
 | ../clutter-gtk/.libs/libclutter-gtk-0.8.so: undefined reference to 
 `clutter_x11_disable_event_retrieval'

I do wonder: what backend are you using with gtk+ *without* an X server?

if you have X11 installed you probably want to use the eglx clutter
backend, which exports those functions.

if you are using gtk+ with DriectFB then I don't think there's a way to
allow sharing the framebuffer - and if there is, you'll have to provide
a patch for clutter-gtk to work with the gtk+ DirectFB backend.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] glib error

2008-09-13 Thread Emmanuele Bassi
On Fri, 2008-09-12 at 22:00 -0400, Eduardo Matus wrote:
 Hey all... I downlaod the clutter 0.8 version from the o-hand
 repository... and when I try the pyclutter gtk example I get this
 
 [EMAIL PROTECTED]:~/clutter/clutter/bindings/pyclutter/examples$
 python gtk-clutter.py 
 
 GLib-ERROR **: /build/buildd/glib2.0-2.16.3/glib/gmem.c:156: failed to
 allocate 4230479876 bytes
 aborting...
 Aborted
 
 
 any ideas??

a stack trace would be useful. others have reported the same error but
I've been unable to reproduce it.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, Intel Open Source Technology Center

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Questions (from end-user perspective)

2008-08-29 Thread Emmanuele Bassi
On Fri, 2008-08-29 at 09:03 -0700, ere wer wrote:
 I'm slowly learning Clutter by playing with the samples and vala-bindings, 
 and here 5+1 quick questions:
 
 1
 The problem linking without libtool (under win32)
 and manually adding --lopengl32 -lgdi32 -lwinmm to the gcc or clutter-0.8.pc.
 Why is it necessary? For a beginner it is pretty frustrating not being able 
 to compile following any tutorial!

windows has different function visibility rules - you're pretty much on
your own, here - especially if you're using Vala.

 2
 Why manually setting stage.visible=true on the default scene? In the end if 
 there is a default one (from end-user perspective) it should pop when
 Clutter.init(ref args);
 Clutter.main();

because you may want to decide when you want to show the stage. the
stage is the only actor that it's not visible by default, so:

 Pretty much the same goes for actor.show()
 end/or stage.show_all()
 to get the actors appear.

no, this does not happen since Clutter 0.8.0: every actor is
automatically shown when added to a parent (that's also another reason
why you have to explicitly show the stage: you're not parenting it).

 3
 Why stage.set_user_resizable is false by default? I know that clutter
 is mainly used for mobile devices (for now), but from a desktop
 perspective its pretty unusual to create a window that is not
 resizable... I even was disapointed, in the begininig, that Clutter
 creates only fixed sieze and fullscrean apps :) (looking into the
 samples)

because if you want to use a proper window on a desktop environment
you're *way* better off by embedding Clutter inside a GtkWindow using
the GtkClutterEmbed widget.

 4
 Why stage.set_position(x,y) does not work. I understand, this is ment to 
 position actors on the stage, but how can one move the stage (the window) 
 itself?

because setting the window position is not recommended in any case:
window managers will not usually honour such requests. on win32 might be
the case, but we prefer consistency.

as I said, if you want to use Clutter on the desktop you're better off
using an embedding toolkit.

 5
 Why Clutter.Entry does not get the focus when clicked?

because Clutter does not provide a focus model - it's all up to you, if
you're designing a toolkit on top of Clutter, to provide one. Clutter is
not GTK+ or QT.

 5+1
 I'm pretty sure this one is a bug:
 When stage resizable is false the Minimize and Maximize buttons are not 
 disabled on Windows os, resulting in unpredicted beheviour!

this is a bug: please, open an entry in bugzilla:

  http://bugzilla.openedhand.com/enter_bug.cgi?product=Clutter

specifying that you're using the windows platform.

 PS I do not know if this is the right place for posting such requsts, and I 
 intend to add more (as a replay to this mail) in the future (if there is any:)

bugs should be reported on bugzilla, as the README and release
announcement emails say.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] TS issues with eglnative backend

2008-08-27 Thread Emmanuele Bassi
On Wed, 2008-08-27 at 11:13 +0200, Olivier Butler wrote:
 Hi,
 
 as I previously wrote, the current method of processing the TS samples  
 are not working well ( with eglnative backend).
 If clutter_event_dispatch lasts too long, TS samples are dropped witch  
 make CLUTTER_MOTION  not
 followed by a CLUTTER_BUTTON_RELEASE.
 
 
 I propose this patch to fix this.
 
 Note : this is a resend, I guess my previous mail didn't reach this  
 list, because I didn't read any feedback.

the patch is still completely not following the coding style of the
project. could you please read the files you're patching and follow the
style there? thanks.

also, the mailing list is not a great tool for tracking patches[0]:
please, open a bug in bugzilla and attach the patch there.

ciao,
 Emmanuele.

+++

[0] API discussion? Feature discussion? yes. patch tracking? no.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Compiling clutter without pango

2008-08-27 Thread Emmanuele Bassi
On Wed, 2008-08-27 at 20:21 +0530, dilip devaraj wrote:

 I am using Clutter-0.8.0 with OpenGLES . I have the following queries

 1) If I do not want to render fonts but just show pixbufs (images)

you are going to waste a lot of video memory by doing so.

 how can I remove the dependency of clutter on pango.

you can't, unless you physically remove the Pango API calls from the
source code.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Stage size

2008-08-22 Thread Emmanuele Bassi
On Fri, 2008-08-22 at 13:24 +1000, Saul Lethbridge wrote:
 Hi,
 
 What relevance does the size of the stage have to actors contained in
 it?

none at all.

  I can create a stage with a width of 640 pixels yet can place actors
 at 800 - why is this?

because the stage is a viewport on the scene graph: it's virtually
limitless.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com


-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] [Clutter][Pyclutter] Bugs or features ?

2008-08-14 Thread Emmanuele Bassi
On Thu, 2008-08-14 at 11:53 +0200, Nati B wrote:
 Hi,
 I've just started using the bindings for PyClutter 0.8, and it seems
 very nice.
 However, due to lack of documentation, I'll raise my questions here
 and hopefully someone will have answers:
 1. Why do I need to prefix my overriding methods with 'do_' - e.g.
 do_paint, do_get_preferred_width, etc..  ? When I define a method
 using the ordinary name (e.g. - 'paint' for example) it's not being
 called.

because that is the naming convention for python bindings of
gobject-based libraries.

patches to the documentation are very much welcome.

 2. I relied on the clutter 0.8 C documentation for the size allocation
 mechanism of a custom actor, and tried to do the same in PyClutter.
 E.g. - I've overridden 'get_preferred_size' with my custom actor.

it surely is not what you need to do, and I wrote the C documentation.

you have to override:

  def do_get_preferred_width (self, for_height):
  return (min_width, natural_width)

  def do_get_preferred_height (self, for_width):
  return (min_height, natural_height)

  def do_allocation (self, box, origin_changed):

  However, it's just not being called, and I have no idea why. 

because there's no such virtual function as 'get_preferred_size' in the
C class - hence no way to override it. :-)

clutter.Actor.get_preferred_size() is just a wrapper around the
get_preferred_width() and get_preferred_height() methods - the
implementation looks like this:

  def get_preferred_size (self):
  request_mode = self.get('request-mode')

  min_width = min_height = 0
  natural_width = natural_height = 0

  if request_mode == clutter.REQUEST_HEIGTH_FOR_WIDTH:
  (min_width, natural_width) = self.get_preferred_width(-1)
  (min_height, natural_height) = 
self.get_preferred_height(natural_width)
  elif request_mode == clutter.REQUEST_WIDTH_FOR_HEIGHT:
  (min_height, natural_height) = self.get_preferred_height(-1)
  (min_width, natural_width) = self.get_preferred_width(for_height)

  return (min_width, min_height, natural_width, natural_height)

it's just a convenience call.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] ClutterScript item list

2008-08-11 Thread Emmanuele Bassi
On Mon, 2008-08-11 at 14:34 -0700, Noah Gibbs wrote:
 Looking at clutter-script.c, it looks like there's a nice little internal 
 hash table (priv-objects) with a list of the objects that were parsed from 
 the file, but you have to know the name of all the objects to get at them.

it's expected, since you must have written the UI definition or have
control on what you're defining. you're surely not loading random data.

or maybe I haven't understood your question.

   It would be easy enough to write one or more functions to grab these items 
 from a ClutterScript object.  Anybody know a reason why the interface 
 shouldn't have such functions?  Would a patch be accepted into clutter main 
 if I wrote some simple functions along these lines?

you mean you want all the ids? or all the objects?

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] ClutterScript item list

2008-08-11 Thread Emmanuele Bassi
[keeping the list cc-ed]

On Mon, 2008-08-11 at 14:48 -0700, Noah Gibbs wrote:
 We're looking at a situation where we might get data that is more free-form.

I hope you do realize the potential security issues that this would
entail.

 We could require that the person writing the ClutterScript file add all of
 their objects to a named top-level container and ignore everything that isn't
 in the container, but we'd prefer not to.

I still have doubts on the usefulness of this.

the UI definition is integral part of an application; ClutterScript
doesn't also provide any sort of logic inside the UI definition itself -
it's just a definition.

 If we could get a list of IDs, that would let us get all the objects when/if
 we wanted them, so that would work.  So yes, I mean get a list of all the 
 object
 IDs currently loaded into a given ClutterScript.  Basically, all the object
 IDs currently in priv-objects.

I can add a method like:

  gchar **clutter_script_get_ids (ClutterScript *script,
  gsize *n_ids);

which returns a newly allocated, NULL-terminated array of strings.

but the ids alone will not give you any detail whatsoever on the object
they are assigned to; you'll have to fetch the object and then check
what it is. and even in that case you'll not know for sure unless you
have some sort of introspection - or any way you can trust what you get
out of a UI definition string or file.

I'd suggest you open a bug on bugzilla.openedhand.com with the API
request and a link to this email, so that we can get some discussion and
keep track of this.

ciao,
 Emmanuele.

 --- On Mon, 8/11/08, Emmanuele Bassi [EMAIL PROTECTED] wrote:
 
  From: Emmanuele Bassi [EMAIL PROTECTED]
  Subject: Re: [clutter] ClutterScript item list
  To: clutter@o-hand.com
  Date: Monday, August 11, 2008, 2:42 PM
  On Mon, 2008-08-11 at 14:34 -0700, Noah Gibbs wrote:
   Looking at clutter-script.c, it looks like there's
  a nice little internal hash table (priv-objects) with a
  list of the objects that were parsed from the file, but you
  have to know the name of all the objects to get at them.
  
  it's expected, since you must have written the UI
  definition or have
  control on what you're defining. you're surely not
  loading random data.
  
  or maybe I haven't understood your question.
  
 It would be easy enough to write one or more
  functions to grab these items from a ClutterScript object. 
  Anybody know a reason why the interface shouldn't have
  such functions?  Would a patch be accepted into clutter main
  if I wrote some simple functions along these lines?
  
  you mean you want all the ids? or all the objects?
  
  ciao,
   Emmanuele.
  
  -- 
  Emmanuele Bassi, OpenedHand Ltd.
  Unit R, Homesdale Business Centre
  216-218 Homesdale Rd., Bromley - BR12QZ
  http://www.o-hand.com
  
  -- 
  To unsubscribe send a mail to
  [EMAIL PROTECTED]
 
 
   
 
-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Building clutter-gtk errors

2008-08-10 Thread Emmanuele Bassi
On Sat, 2008-07-19 at 09:44 +1000, Saul Lethbridge wrote:
 I'm getting the following error when trying to build (make)
 clutter-gtk (ubuntu 8.04)
 
 gtk-clutter-embed.c:48:34: error: clutter/clutter-main.h: No such file
 or directory 
 
 
 
 I have successfully built and installed clutter 0.8.

you still have some parts of clutter installed somewhere that are
conflicting with the ones you installed.

if you built and installed clutter-0.8 then you probably have to adjust
the PKG_CONFIG_PATH environment variable to:

  export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}

in order for the configure script to pick up where clutter is installed.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] pyclutter state of trunk

2008-08-05 Thread Emmanuele Bassi
On Tue, 2008-08-05 at 16:36 +0200, [EMAIL PROTECTED] wrote:
 hi,
 
 I started playing around with pyclutter-0.8 and it's really awesome!
 Some things I'm missing (probably my fault):
  - access to cogl textures

from clutter import cogl

cogl.path_rectangle(x, y, width, height)

or simply:

clutter.cogl.path_rectangle(...)

the cogl API has not been entirely wrapped: generic functions and the
path API are available, as of now; I'll possibly add the texture API as
well.

you can see how it works in examples/custom-actor.py.

  - clutter_stage_read_pixels

it should be available - I'll double-check.

  - subclassing clutter.Container

class MyContainer (clutter.Container):
def do_add (self, actor):
pass
def do_remove (self, actor):
pass

should already work. it will need some more love for the child
properties, but I plan to support those as well.

  - cooking coffee ;)
 
 Anyway, I'm willing to contribute documentation. Can anybody give my
 some hints where/how to start?

simply check out from SVN trunk, go in doc/reference, take an XML file
and start writing. :-)

the clutter-clutteractor.xml is mostly complete, so it can be used as a
reference.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] [PATCH] texture-from-pixmap with pyclutter

2008-08-05 Thread Emmanuele Bassi
On Tue, 2008-08-05 at 10:58 -0400, Jason Tackaberry wrote:
 On Sun, 2008-08-03 at 15:38 -0400, Jason Tackaberry wrote:
  The attached patch adds ClutterX11TexturePixmap and
  ClutterGLXTexturePixmap support to pyclutter.
 
 Hi Emmanuele,
 
 At risk of sounding like I'm nagging, I wanted to make sure this patch
 didn't slip through the cracks and that you'd have a chance to comment
 on it. :)

no worries. I'm actually quite conflicted about binding platform
specific API, for three reasons.

first and foremost because pyclutter will not be able to prevent people
using python on win32 to call the x11 API - and vice versa. I can
prevent people to compile it on different platforms, by #ifdef'ing
everything out using the defines Clutter provides, or using the
clutter-${platform} pkg-config file. but depending on the platform you
might have the X11 texture-from-pixmap or the GLX texture-from-pixmap,
and that is going to be a pain to differentiate.

 Window types are implement as guint32.  Looking through the X headers,
 Window is a CARD32, which is an unsigned 32-bit quantity.  Pixmaps are
 a bit trickier, so I figured the most convenient and compatible
 approach would be to accept PyCObjects.

and this is the other issue: I don't want to start maintaining Xlibs
bindings for python. if you start adding X11 types people will start
requesting weird functions - like changing the X cursor, or other crap.
I barely have time as it is to maintain pyclutter - maintaining
python-cxlibs is completely out of the question.

the third and final issue is: are you really going to use Python for
something that relies on texture-from-pixmap? the only applications I've
seen using this extension are window managers.

+++

this is not to say I won't accept a patch that implements
platform-specific API; if anyone comes up with the patch addressing the
first two concerns and a use case for the third that is not
implementable using some C and a python wrapper, then I'll gladly apply
said patch. as it stands now, I'm not going to work on adding
platform-specific wrappers for the bindings I maintain.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] [pyclutter] embedding clutter in a GTK window

2008-08-05 Thread Emmanuele Bassi
On Tue, 2008-08-05 at 19:23 +0100, Jan Jokela wrote:
 Ah, forgot one thing, only when changing GTK window height.
 Also experimented with putting the clutter embed inside HBoxes and
 VBoxes to no effect.

I've just updated the gtk-clutter.py example inside pyclutter: now the
stage expands itself when the window is resized, while the two actors
keep themselves centered on the stage using the notify::allocation
signal (which is the signal that should be used to update the
size/position of actors placed inside a container implementing a fixed
layout manager, like clutter.Group and clutter.Stage).

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] pyclutter cluttergst segfaults since r3205

2008-08-01 Thread Emmanuele Bassi
On Fri, 2008-08-01 at 16:41 +0200, Bastian Winkler wrote:
 OK, the patch works on x86_64/nvidia (the system my former backtrace was
 made on), but fails on i386/intel with:
 
 ** (process:12615): WARNING **: Invalid string. This should not happen.

mmh, I might have an idea. could you please try the attached patch over
a clean SVN checkout?

 BTW, both systems are running Debian SID with python 2.5.2-9

yep, here too.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com
diff --git a/clutter-gst/cluttergstmodule.c b/clutter-gst/cluttergstmodule.c
index adcef0f..270beb8 100644
--- a/clutter-gst/cluttergstmodule.c
+++ b/clutter-gst/cluttergstmodule.c
@@ -45,10 +45,17 @@ init_clutter_gst (void)
 
   if (av != NULL)
 {
-  argv = g_new (char*, argc);
+  argv = g_new0 (char*, argc + 1);
 
   for (i = 0; i  argc; i++)
-argv[i] = g_strdup (PyString_AsString (PyList_GetItem (av, i)));
+{
+  PyObject *arg = PyList_GetItem (av, i);
+
+  if (arg  PyString_Check (arg))
+argv[i] = g_strdup (PyString_AsString (arg));
+  else
+g_warning (Invalid string. This should not happen.);
+}
 }
   else
 {
@@ -57,19 +64,7 @@ init_clutter_gst (void)
 }
 
   if (!clutter_gst_init (argc, argv))
-{
-  if (argv != NULL)
-g_strfreev (argv);
-
-  PyErr_SetString (PyExc_RuntimeError, cluttergst initialization error);
-
-	/* set the LC_NUMERIC locale back to C, as Python  2.4 requires
-	 * that it be set that way. */
-#if PY_VERSION_HEX  0x020400F0
-  setlocale(LC_NUMERIC, C);
-#endif
-  return;
-}
+PyErr_SetString (PyExc_RuntimeError, cluttergst initialization error);
 
   /* set the LC_NUMERIC locale back to C, as Python  2.4 requires that
* it be set that way. */
diff --git a/clutter-gtk/cluttergtkmodule.c b/clutter-gtk/cluttergtkmodule.c
index e92c9e4..006888e 100644
--- a/clutter-gtk/cluttergtkmodule.c
+++ b/clutter-gtk/cluttergtkmodule.c
@@ -45,10 +45,17 @@ init_clutter_gtk (void)
 
   if (av != NULL)
 {
-  argv = g_new (char*, argc);
+  argv = g_new0 (char*, argc + 1);
 
   for (i = 0; i  argc; i++)
-argv[i] = g_strdup (PyString_AsString (PyList_GetItem (av, i)));
+{
+  PyObject *arg = PyList_GetItem (av, i);
+
+  if (arg  PyString_Check (arg))
+argv[i] = g_strdup (PyString_AsString (arg));
+  else
+g_warning (Invalid string object. This should not happen);
+}
 }
   else
 {
@@ -57,19 +64,7 @@ init_clutter_gtk (void)
 }
 
   if (!gtk_clutter_init (argc, argv))
-{
-  if (argv != NULL)
-g_strfreev (argv);
-
-  PyErr_SetString (PyExc_RuntimeError, cluttergtk initialization error);
-
-	/* set the LC_NUMERIC locale back to C, as Python  2.4 requires
-	 * that it be set that way. */
-#if PY_VERSION_HEX  0x020400F0
-  setlocale(LC_NUMERIC, C);
-#endif
-  return;
-}
+PyErr_SetString (PyExc_RuntimeError, cluttergtk initialization error);
 
   /* set the LC_NUMERIC locale back to C, as Python  2.4 requires that
* it be set that way. */
diff --git a/clutter/Makefile.am b/clutter/Makefile.am
index 10c78b1..13b10e5 100644
--- a/clutter/Makefile.am
+++ b/clutter/Makefile.am
@@ -105,3 +105,9 @@ defs_DATA = \
 	 cp -f gen-$*.c $*.c \
 	 rm -f gen-$*.c
 
+# delete the old submodules, if any, to avoid collisions
+install-data-local:
+	(cd $(DESTDIR)$(pyclutterexecdir)  \
+	 rm -f cluttercairo.so  \
+	 rm -f cluttergst.so  \
+	 rm -f cluttergtk.so)


Re: [clutter] Vala problems

2008-07-31 Thread Emmanuele Bassi
On Thu, 2008-07-31 at 10:44 -0700, Dirk Hohndel wrote:
 I wanted to play with the Clutter Vala bindings and am stuck...
 
 I fail to get any Vala / Clutter examples (or tests) to actually compile
 under Fedora 9. I'm using valac 0.3.4, the clutter 0.6.0 Vala bindings and
 tried both clutter 0.6.0 (as included in Fedora 9) or clutter 0.8.0.
 
 Every compile fails at the main function:
 
 Public static void main (string[] args) {
 Clutter.init (ref args);

yes, the last stable releases of Vala broke the bindings - which is
expected with a fairly new language still evolving.

the clutter-vala in SVN trunk are now updated to Vala 0.3.4 and Clutter
0.8.0 (plus integration libraries, apart from clutter-gst which makes
the introspection generator segfault, so I'll have to manually write the
bindings for it).

I'm planning a clutter-vala 0.8.0 release in the weekend.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter]

2008-07-28 Thread Emmanuele Bassi
On Mon, 2008-07-28 at 17:55 +0800, Pizza wrote:
 Hi,
 I'm new to programming.
 I've made a simple list with ClutterModel APIs. To display my list, I
 just made each row an actor, and it worked.
 My question is: Is there anything such as GtkTreeView, GtkCellRenderer
 or other for us to manipulate a list?

yes: Tidy has a ListView actor which displays an actor per cell as
provided by a CellRenderer object, and each renderer per column is
handled by a ListColumn object.

the ListView API and behaviour when building the view of a model is
slightly different from the GTK+ counterpart; the idea is that the
entire view is generated from introspecting the model. ideally you hide
the columns you don't want to display, and by default all columns inside
a model are automatically visible. also the CellRenderer returns an
actor, and it doesn't paint on an area.

for an example of ListView usage you can see the test-list-view inside
Tidy or, if you want a more complex case, see the Tweet application[0].

ciao,
 Emmanuele.

+++

[0] http://live.gnome.org/Tweet


-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Behaviors, Actors and Timelines

2008-07-27 Thread Emmanuele Bassi
On Sun, 2008-07-27 at 20:54 +1000, Saul Lethbridge wrote:

 I've create a behavior that controls opacity and I have applied to
 many actors. All is well. Now I need to stop and restart this opacity
 effect for each actor at differing times. If I rewind and start the
 timeline, it applies to all actors. How do I do this per actor?

if you want to control different actors with different times then you
need to use multiple timelines and multiple behaviours. a behaviour can
only use one timeline and one alpha object.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Resolution-independent text

2008-07-26 Thread Emmanuele Bassi
On Sat, 2008-07-26 at 13:39 -0400, Jack Smith wrote:
 I'd like to specify font height in pixels, so I can adjust it
 according to the resolution of the screen.

just create a Label and set the text in pixels instead of points:

  label = new Clutter.Label ();
  label.font_name = Sans 24px;

this will do what you want.

the resolution used depends on the backend; the GLX backend will use a
96.0 DPI resolution, but you can change it using the ClutterBackend API.

 I'm guessing the current fonts are stored as bitmaps,

no, they are not. each glyph is cached, so if the same font, the same
size and the same glyph is requested to Pango, it will be extracted from
the cache instead of being redrawn.

 so would I have to create each letter from scratch to get this effect?

Clutter is not OpenGL - you don't need to care about font bitmaps. :-)

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter for games

2008-07-24 Thread Emmanuele Bassi
On Thu, 2008-07-24 at 15:53 +0300, Kaj Grönholm wrote:
 Hey all,
 
 Updated myself with the improvements in 0.8 yesterday, with a twist to
 see how well Clutter would suit (action) game development, see:
 http://kgronholm.blogspot.com/2008/07/clutteroad.html
 
 Haven't really done any game programming since 90's so please bare
 with me =) So far didn't find anything else which couldn't be solved
 with some work, except tracking that car stays in road and adapts into
 environment. So any ideas on what would be nicest way to do this
 collision detection with Clutter? Any new API ideas in there, maybe
 it would be possible to improve picking code and add extra boolean
 parameter in clutter_stage_get_actor_at_pos() to ignore totally
 transparent parts of actors?

you probably want to have a look at the clutter-box2d library, which is
a Clutter-based wrapper around the Box2D physics engine; with that you
can get collision detection, gravity, momentum and all the other things
that a physics engine provide.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] build of clutter-cairo svn: seems configure doesn't check for gtk+2.0/gdk-pixbuf

2008-07-23 Thread Emmanuele Bassi
On Wed, 2008-07-23 at 13:26 +0100, Tommi Komulainen wrote:

  clutter-cairo.h:31:35: error: gdk-pixbuf/gdk-pixbuf.h: No such file or 
  directory
 
  Thanks for pointing this out, clutter-cairo really doesn't need to use
  GdkPixbuf, I'm fixing this now and we'll make a release shortly
  afterwards.
 
 http://bugzilla.openedhand.com/show_bug.cgi?id=1001

should have been fixed in trunk, and I did a clutter-cairo 0.8.2 release
today which should work correctly by not requiring/using GdkPixbuf.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] [ANNOUNCE] Clutter 0.8 integration libraries

2008-07-18 Thread Emmanuele Bassi
hi everyone;

Clutter 0.8 suite of integration libraries is now available for download
at:

  http://www.clutter-project.org/sources/clutter-cairo/0.8/
  http://www.clutter-project.org/sources/clutter-gst/0.8/
  http://www.clutter-project.org/sources/clutter-gtk/0.8/

MD5 Checksums:

  56b69645629293d5dcd93817fabe669a  clutter-cairo-0.8.1.tar.gz
  91262dd6ead7261a584dacf5dd1933f5  clutter-cairo-0.8.1.tar.bz2
  9ebf9bbe406757472952743ca01870f3  clutter-gst-0.8.0.tar.gz
  13d2a34ea76e4f010e66d20eba12e864  clutter-gst-0.8.0.tar.bz2
  1fea21affb3a74014fc0b4270b67ed2d  clutter-gtk-0.8.1.tar.gz
  0a93adeb69281dcd1d8455a53f746d9b  clutter-gtk-0.8.1.tar.bz2

The Clutter integration libraries suite is a series of open source
libraries for integrating Clutter with other libraries:

  clutter-cairo, for integration with Cairo
  clutter-gst, for integration with GStreamer
  clutter-gtk, for integration with GTK+

This suite of libraries allows to use the Cairo drawing API into
Clutter; or to use the GStreamer pipelines to render to a texture inside
the Clutter scenegraph; or to embed a Clutter scenegraph into a GTK+
application.

Clutter-Cairo 0.8.1
---

Requirements:

  * Clutter = 0.8.0
  * Cairo = 1.4.0

List of changes since 0.6:

  o Added clutter_cairo_surface_resize() and
clutter_cairo_create_region()

Clutter-GStreamer 0.8.0
---

Requirements:

  * Clutter = 0.8.0
  * GStreamer = 0.10

List of changes since 0.6:

  o Add clutter_gst_audio_get_playbin () function
  o Add support for 24-bit textures
  o Add pixel-shader AYUV/YV12 support via 'use-shaders' property on
ClutterGstVideoSink

Clutter-GTK+ 0.8.1
--

Requirements:

  * Clutter = 0.8.0
  * GTK+ = 2.12

List of changes since 0.6:

 o Support the Clutter win32 backend
 o Support multiple GtkClutterEmbed widgets
 o Add utility functions for integrating with GTK+ themes,
   GTK+ stock icons, icon themes and GdkPixbuf
 o Do not open a second Display connection on X11

As usual, have fun with Clutter!

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Updating python bindings for 0.8

2008-07-17 Thread Emmanuele Bassi
On Wed, 2008-07-16 at 08:28 -0400, Jason Tackaberry wrote:
 On Wed, 2008-07-16 at 13:24 +0100, Emmanuele Bassi wrote:
  I'm going to resync trunk with my changes. after that: patches
  welcome :-)
 
 Excellent, thanks Emmanuele.  I'll hold off until your commit.

I've resync'ed the main Clutter API. unfortunately:

  - the COGL API is missing and it's not entirely trivial to port
  - I have warnings when terminating a pyclutter application that
I can only surmise are due in part to the PyGObject bindings
and due to bug 856 [1] - but I might be wrong about both and
it's just a bug in PyClutter
  - on my i945 I get a:

do_wait: drmWaitVBlank returned -1, IRQs don't seem to be working correctly.
Try adjusting the vblank_mode configuration parameter.

warning which doesn't appear with a pure C application or
an application using the Perl bindings.

so I guess I'm really asking for help on this release of PyClutter, or
0.8.0 will be delayed until I get enough time either to figure out the
bugs or to start the bindings from scratch and see where they fail.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Updating python bindings for 0.8

2008-07-16 Thread Emmanuele Bassi
On Wed, 2008-07-16 at 08:13 -0400, Jason Tackaberry wrote:
 Is anyone working on this?  Are patches welcome?  I don't want to
 duplicate any efforts.

I'm working on pyclutter at the moment; the coverage is:

  ***INFO*** The coverage of global functions is 100.00% (79/79)
  ***INFO*** The coverage of methods is 97.42% (378/388)
  ***INFO*** The coverage of virtual proxies is 100.00% (10/10)
  ***INFO*** The coverage of virtual accessors is 100.00% (23/23)
  ***INFO*** The coverage of interface proxies is 100.00% (13/13)

but the cogl and unit-based APIs are not yet wrapped.

I'm going to resync trunk with my changes. after that: patches
welcome :-)

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] custom actor - member positioning problem

2008-07-15 Thread Emmanuele Bassi
On Tue, 2008-07-15 at 14:28 +0200, Balázs Lájer wrote:
 Hi all,
 
 I'm a bit new to clutter but for COGL fully. I tried to create a
 custom actor with another actor member. The problem is that I cannot
 position the member where I want, although when I get its coordinates,
 I get the right values.

you wrote:

 I set the position and called the clutter_actor_show() in the
 do_triangle_paint() function

which is wrong on a couple of issues: there's no need to call
clutter_actor_show() anymore, all actors are shown by default when
setting their parent, and surely you don't need to call
clutter_actor_show() inside a paint function. but, more importantly, you
don't say of which actor you're setting the position. your custom actor?
the label?

you should really read the API reference, in the section Implementing a
new actor:

 
http://www.clutter-project.org/docs/clutter/stable/clutter-subclassing-ClutterActor.html

in short:

  - if you have children actors you should override the allocate virtual
function and reposition the label depending on the allocation box
that has been given to you by your parent actor

  - if you want to provide a preferred size for your actor, you should
also override get_preferred_width() and get_preferred_height().

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] tslib and eglnative backend

2008-07-15 Thread Emmanuele Bassi
On Tue, 2008-07-15 at 18:30 +0200, Olivier Butler wrote:

   I attached to this mail a possible fix, witch empty the ts stream at  
 the beginning of each the clutter_event_dispatch.
 
 Any comments are welcome.

I'll leave others to comment on the actual fix - I'll just comment on
the code style.

the patch manages not only to *not* follow any of the code style of the
surrounding lines, but it also breaks the code style on non-related
lines for no apparent reason.

-  event_source-ts_device = ts_open (g_getenv (TSLIB_TSDEVICE), 0);
+  event_source-ts_device = ts_open (g_getenv (TSLIB_TSDEVICE), 1 /*0*/);

just remove the comment.

-  g_source_set_can_recurse (source, TRUE);
+  g_source_set_can_recurse (source, TRUE );

don't add useless whitespace.

+ 
+
 #ifdef HAVE_TSLIB
-  struct ts_sampletsevent;
+  struct ts_sampletsevent,tsevent_read,tsevent_first,tsevent_last;
 #endif
   ClutterMainContext *clutter_context;
   static gint last_x = 0, last_y = 0;
   static gboolean clicked = FALSE;
-
+  

again, whitespace.

+
+
 #ifdef HAVE_TSLIB
   /* FIXME while would be better here but need to deal with lockups */
-  if ((!clutter_events_pending()) 
-(ts_read(event_source-ts_device, tsevent, 1) == 1))
+ 
+   if (  ( (!clutter_events_pending()) ) /* 
+(ts_read(event_source-ts_device, tsevent, 1) == 1) */)
 {
+

again, whitespace. and could you care to elaborate the FIXME here?

+/* empty the ts buffer, in case of clutter_dispatch is slower than ts events
+take the fist sample on ts pressing
+take the last sample on motion and ts release  */
+
+int nbts ;
+int tslast = 0 ;
+int tsfirst = 0 ;
+do
+{
+nbts = ts_read(event_source-ts_device, tsevent_read, 1);
+if ( (nbts == 1 )  ( tsfirst == 0 )  ) { tsevent_first = tsevent_read ; 
tsfirst = 1 ; }
+if (nbts == 1 )   { tsevent_last = tsevent_read ; tslast = 1 ; } 
+} while ( nbts ) ;
+
+if ( (!tsfirst)  (!tslast) ) goto out ;
+if ( clicked == FALSE ) tsevent = tsevent_first ;
+else tsevent = tsevent_last ;
+
+

this lacks whitespace, indentation, newlines and uses C99 declarations.

-  if (tsevent.pressure  last_x == tsevent.x  last_y == tsevent.y)
-goto out;
+
+ if (tsevent.pressure  last_x == tsevent.x  last_y == tsevent.y)
+   goto out;

useless whitespace change.

@@ -245,7 +271,6 @@
   event-button.time = get_backend_time ();
   event-button.modifier_state = 0;
   event-button.button = 1;
-
   clicked = TRUE;
 }
   else if (tsevent.pressure  clicked)
@@ -253,19 +278,20 @@
   event-motion.type = event-type = CLUTTER_MOTION;
   event-motion.time = get_backend_time ();
   event-motion.modifier_state = 0;
-}
+
+   }
   else
 {
  event-button.type = event-type = CLUTTER_BUTTON_RELEASE;
   event-button.time = get_backend_time ();
   event-button.modifier_state = 0;
   event-button.button = 1;
-
   clicked = FALSE;
 }
 
-  g_queue_push_head (clutter_context-events_queue, event);
-}
+ g_queue_push_head (clutter_context-events_queue, event);
+   
+}

useless whitespace change.

could you please rewrite your patch so that it conforms with the rest of
the codebase you're modifying? it makes it really hard to even comment
on the correctness of the code.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Multiple thread

2008-07-09 Thread Emmanuele Bassi
On Wed, 2008-07-09 at 14:23 +0800, HASWANI HARISH-VCKR47 wrote:
 Hi Mathew, Emmanuele,
 I am seeing a peculiar issue : 
  
 - Created two g_threads( say Thread 1 and Thread 2)
 - Thread 1 is main thread which spawns thread 2.
 - Thread 2, creates clutter stage ( only stage no actors). after
 creation of stage thread 2 enters in clutter_main() loop.
 - Once Thread 2 is in clutter main loop, thread 1 creates an Texture
 actor and emits a signal to thread 2 ( which has created stage)
 - Upon receiving signal, signal handler adds the actor on stage and
 calls clutter_actor_show() for that texture actor.
  
 ISSUE is : I am not able to see the actor. What may be the issue?
 
have you called clutter_threads_init()? are you using
clutter_threads_add_idle() to emit the signal and manipulate the texture
in the same thread that called clutter_main()? have you even looked at
the test-threads test/example that ships with Clutter?

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] several questions

2008-07-03 Thread Emmanuele Bassi
On Thu, 2008-07-03 at 14:52 +0100, Matthew Allum wrote:
 Hi;
 
 On Thu, 2008-07-03 at 08:54 -0400, Reid van Melle wrote:
  Sorry for this dump of questions...
  
  1. Full Screen Mode
  

 What version of Clutter are you using here and with what backend ?

I think fullscreen on OSX (the one that Reid is using, as far as I
understood) is not entirely working:

  http://bugzilla.openedhand.com/show_bug.cgi?id=545

  
  3. Clutter Test Programs
  
  There are a few test programs (i.e. cluttter/tests/*) that crash and  
  potentially a few others that are not executing properly.  Is this  
  expected?  Or is every instance of a failing test program a bug that  
  should be investigated and filed?
 
 Again what version and backend are you using here ? Either way these
 'tests' shouldn't crash - if they do please do post a bug on bugzilla.

yes, some tests do crash on OSX; I've been going over them on the 10.5
with i965 box we have, but could not figure out why. most of the
crashing ones were the COGL tests, as far as I could see.

an open bug about them would be great indeed.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] SGML files

2008-06-26 Thread Emmanuele Bassi
On Thu, 2008-06-26 at 15:59 +0800, HASWANI HARISH-VCKR47 wrote:
 Hi All,
  
 For reference, i was going trying to open SGML files inside :
 \clutter-0.7.2\doc\reference\clutter\.

don't.

those are the templates used to generate the HTML and the DevHelp
formats of the API reference.

if you want to browse the documentation locally you will have to
generate it first. run the configuration script like this:

  ./configure --enable-gtk-doc

then make will recurse into the doc/reference directory and will use
gtk-doc to create the API reference for Clutter and COGL.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Crash on ClutterActor destruction

2008-06-26 Thread Emmanuele Bassi
On Thu, 2008-06-26 at 10:42 +0200, Anthony HERRERO wrote:
 Since 0.7 version, clutter crashes if I call the function
 clutter_actor_destroy after the main loop execution.
 It isn't mentioned in documentation, if it's allowed. 
 
 Any ideas ?

it's a known issue[0]. it will be fixed in 0.8.0.

ciao,
 Emmanuele.

[0] http://bugzilla.openedhand.com/show_bug.cgi?id=856

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] --with-flavour osx recently broken?

2008-06-26 Thread Emmanuele Bassi
On Thu, 2008-06-26 at 09:42 -0400, Reid van Melle wrote:
 I've been compiling the svn clutter on osx 10.4 as shown below.  It  
 stopped building with a recent update.

yes, my bad: code copy and paste without a full compile.

it's fixed in trunk.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Tidy / Clutter 0.7.2

2008-06-26 Thread Emmanuele Bassi
On Thu, 2008-06-26 at 15:58 +0200, Olivier Butler wrote:
 Hi,
 
 About tidy, I succeed to build the clutter-layout branch to work with  
 libclutter0.7.2 (with few fixes).
 The test apps are mainly working ( few bugs in scroll-view or scroll- 
 bar ).

yes. some actors will also require a more serious rewrite, to take
advantage of the new API.

 I'm wondering, when the trunk branch will be updated ?
 What is the status of this lib ?

Tidy trunk follows the same pattern of the bindings and the various
toys: it only links against a stable release.

you can expect Tidy to be updated when Clutter 0.8.0 is out.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] how 2 use keep-aspect-ratio

2008-06-25 Thread Emmanuele Bassi
On Wed, 2008-06-25 at 14:59 +0800, HASWANI HARISH-VCKR47 wrote:
 
 clutter-0.7.2 added keep-aspect-ratio property for taxtures. How to
 use that, which is the API to set this property TRUE or FALSE.

the usual API to set GObject properties:

  g_object_set (G_OBJECT (texture), keep-aspect-ratio, TRUE, NULL);

the property is mostly useful at construction time or when using
ClutterScript, and as other properties in ClutterTexture, the existence
of an explicit accessors pair it's probably not needed. it might be
added at any later date, though.

you should really, *really* be reading the GObject documentation by now.
please, try to read that before asking any question on the list.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter 0.7 and EGL

2008-06-24 Thread Emmanuele Bassi
On Tue, 2008-06-24 at 14:39 +0530, Shreyas Srinivasan wrote:

  It seems that the new version is not working with the EGL backend.
  We have a unable to create a suitable EGL context error on all apps during
  startup.
  Apps have been recompiled with 0.7 and the --with-flavour= eglnative
  option of course.
 
  Everything was ok with Clutter 0.6.4.
 
  Config is : OpenGL ES1.1 on imx31 with EGL native backend.
 
 Yes, i can confirm this too. I initially thought it might be some build/link
 issue but i get the same error.
 
 Dennis, did you file a bug yet? Or i will do so now.

if you file a bug, could you please attach the full log obtained by
exporting CLUTTER_DEBUG=all before running a test application? thanks.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Please explain in brief for 0.7

2008-06-23 Thread Emmanuele Bassi
On Mon, 2008-06-23 at 18:54 +0800, HASWANI HARISH-VCKR47 wrote:
 Clutter now provides an experimental backend for the Apple(tm) iPhone
 and iPod Touch families of products.
 
  
 
 Which APIs

the Clutter API, what else? if you're referring to the native API, then
none: we use the EGL API to blit to a surface and kindly ask the OS to
get out of our way.

  and where i can look about this?

in the source code, quite obviously, under the fruity backend.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Re-entrant

2008-06-21 Thread Emmanuele Bassi
On Fri, 2008-06-20 at 12:02 +0800, HASWANI HARISH-VCKR47 wrote:
 Hi All,
  
 I want to know that whether all Clutter APIs are re-entrant or not?
 Or we need to call  clutter_threads_enter()  and
 clutter_threads_leave()  before making call to clutter APIs.
  

Clutter operates under a single lock in a threaded environment; this
means that every API call updating the Clutter scenegraph must acquire
the Clutter lock with threads_enter() and release it with
threads_leave().

the interactions with threaded environments, the GLib main loop, GL and
Clutter are non-trivial, though, and can be barely portable. so it is
strongly advised that:

 1. only the thread that invoked clutter_main() is allowed to
operate on the Clutter scenegraph;

 2. every other thread that wants to operate on the scenegraph
should add an idle or a timeout callback on the main loop
which are guaranteed to be executed in the same thread as
the main loop is.

there is a full example inside Clutter of this pattern, called
test-threads.c.

the behaviour or Clutter is similar to the one used by GDK, so the
documentation at:

  http://library.gnome.org/devel/gdk/stable/gdk-Threads.html

is also a valid starting point.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Cluter Web Kit

2008-06-19 Thread Emmanuele Bassi
On Thu, 2008-06-19 at 21:05 +0800, HASWANI HARISH-VCKR47 wrote:
 Hi All,
  
 I am not able to open git://git.o-hand.com/webkit
 Does git is replacement for http: in above link?

git is a distributed source code management system:

  http://en.wikipedia.org/wiki/Source_Code_Management
  http://en.wikipedia.org/wiki/Git_(software)
 
 Can any provide me proper http link so that i can download and see few
 exapmles running on FEDORA8.

no package has been made for the Clutter WebKit backend yet. that's why
Iain replied with the URL for the WebKit wiki.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] [ANNOUNCE] Clutter 0.7.0 (core) - developers snapshot

2008-06-15 Thread Emmanuele Bassi
On Sun, 2008-06-15 at 11:19 +0200, Murray Cumming wrote:

 o COGL, the underlying GL abstraction layer in Clutter, has been
   completely rewritten from the ground up. Its no longer a conceptual
   hack but a documented, fully featured library pretty much in its
   own right.
 [snip]
 
 Is that COGL documentation online somewhere?

as I wrote in the announcement:

   o For a funny issue with the install module script, the
documentation
 for COGL has taken over the one for Clutter on the web site; it
 will be fixed as soon as possible.

there has been some issue with the script that publishes the tarball and
the documentation on the website because Clutter and COGL share the same
high level module - like GDK and GTK do.

it's going to be fixed this week, in time for the next snapshot; in any
case, COGL generates a complete API reference also available in Devhelp
when installed.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Threading and Process model in clutter

2008-06-10 Thread Emmanuele Bassi
On Tue, 2008-06-10 at 16:24 +0100, dilip devaraj wrote:
 Hello Clutter
 
 I was executing the test-depth program  ,in this a clutter_init call
 is made which in turn makes use of clutter_threads_init () call. 

I'm fuzzy on the whole clutter_init call which makes use of
clutter_threads_init(); you mean you are calling clutter_threads_init()
yourself, right?

 1)How do I make sure how many threads are created at any point of time
 in clutter ? Do I have to set any environment variable ,because if I
 do a  
 ps -el in command prompt it shows only a single thread ie the the
 application process thread

Clutter is not internally threaded: every thread you might see is a
thread you are creating.

 2)Is there any way I can find out what thread or processes are created
 internal to clutter for intercation with pango ,cairo, gstreamer . 

Pango, Cairo and Clutter are not internally threaded.

GStreamer uses threads internally. you should refer to the library
documentation.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Synchronous and Asynchronous calls in clutter

2008-06-10 Thread Emmanuele Bassi
On Tue, 2008-06-10 at 16:29 +0100, dilip devaraj wrote:
 Hello Clutter
 
 Clutter handles events using Glib and is notified by using
 g_signal_new and corresponding g_signal_connect.
 1)Can someone please tell me internally if any of the implementations
 of clutter or glib is asynchronous  ,synchronous or mix of both

the signal machinery in GObject is synchronous. you should read the
proper GLib documentation.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Performace of clutter

2008-06-05 Thread Emmanuele Bassi
On Thu, 2008-06-05 at 13:42 +0800, HASWANI HARISH-VCKR47 wrote:
 Hi All,
  
 I modified one app using TIDY  ( test-finger-scroll.c)to use images
 rather than rectangles. I found that It takes more time to load all
 images. so i had a doubt :

which should really not come as a surprise, I'd say, as loading images
and pushing them into GL textures clearly is an expensive process.

how many images have you been loading? how big? on what kind of hardware
and graphics drivers?

 - Have any one done performance analysis of clutter?

we do profile our code whenever is possible, and we try very hard to
improve the basic Clutter performances - but most of the performances
are a matter of user code (how many textures, how many animations, how
much text, which GPU), not library code.

 - How Fast it will behave if we'll use pango. Which is a very big lib.

I honestly fail to see the connection between Pango and textures. or
with the size of the library (which is not very large and it is shared
among all processes using it).

 - If I want to port clutter app on ARM ( with graphics accelerator and
 w/o graphics accelerator) how it will perform?

how does a library based on hardware acceleration greatly depends on the
hardware it runs on. saying ARM doesn't say much, as it depends on the
GPU used on an ARM device. I can already tell you that without a GPU it
will not perform very good.

ciao,
 Emmanuele.
 
-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] perl

2008-06-04 Thread Emmanuele Bassi
On Wed, 2008-06-04 at 14:16 +0200, Daniel Oberhoff wrote:
 Hi,
 
 I am currently starting a small project wirh clutter. Just a friend  
 and me. Just: he is a perl freak, I do c/c++. So is it possible to  
 work on the same clutter stage from both languages, and exchanges  
 objects like images etc?

no, it's not possible.

once the GObject introspection will be done, and the GLib Perl bindings
will use it, it will be possible to share classes written in any
language with other languages.

for the time being, the C/C++ code could be used to write a library that
gets wrapped in Perl the same way Clutter is wrapped in Perl; the other
way around is, sadly, not possible.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] [ANNOUNCE] Clutter 0.6.4 (core)

2008-06-03 Thread Emmanuele Bassi
hi everyone;

Clutter 0.6.4 is now available for download at:

  http://www.clutter-project.org/sources/clutter/0.6/

MD5 Checksums:

  d28dec49517475c2ea0de884d7b87268  clutter-0.6.4.tar.gz
  2efc5eebae589a0fa8bddce7d6518bf5  clutter-0.6.4.tar.bz2

Clutter is an open source software library for creating fast, visually
rich and animated graphical user interfaces. Clutter is licensed under
the terms of the GNU Lesser General Public License version 2.1.

Clutter currently requires:

  * GLib = 2.14.0
  * GdkPixbuf
  * Pango 1.x
  * OpenGL = 1.2 or OpenGL ES 1.1
  * GLX, SDL (Unix and Win32), Cocoa or an EGL Implementation

The official website is: http://www.clutter-project.org
The Clutter blog is at:  http://www.clutter-project.org/blog
To subscribe to the Clutter mailing list, send mail to: [EMAIL PROTECTED] 
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference: http://www.clutter-project.org/docs/clutter/0.6/

* Notes

   o This is a stable, bug fix release of Clutter 0.6.

   o This version is fully API and ABI compatible with the previous
 0.6 releases.

   o This version is API and ABI incompatible with previous stable
 release of Clutter, 0.6.2.

   o This version is parallel installable with Clutter 0.4. Installing
 this version will overwrite the files from the installation of
 Clutter 0.6.0 as well as the files from the installation of a SVN
 checkout of the current stable branch (clutter-0-6).

   o Bugs should be reported to: http://bugzilla.o-hand.com

What's new in Clutter 0.6.4
---

 * List of changes between 0.6.2 and 0.6.4

   o Queue redraws when a parameter of a ClutterShader changes.

   o Fix clutter_x11_remove_filter() checks.

   o Fix an assertion failed when stopping a ClutterScore.

   o Use an internal timer to fill out the events time in the SDL and
 EGL native backends; this fixes the motion events throttling and
 the click counting of the button events.

   o Fix an assertion failed when unmerging parts of a ClutterScript.

   o Do not emit the ::row-changed signal of a model before the
 row has been added.

 * List of bugs fixed

   o #853 - timeline.get_progress() causes Floating point exception
[Neil Roberts]
   o #857 - Use glColor4x instead of glColor4ub to fix picking on the
PowerVR viewer [Neil Roberts]
   o #900 - clutter_actor_lower() and friends do not queue redraw
   o #906 - Implement timing of the events

Thanks to all the contributors:

  Neil Roberts
  Øyvind Kolås
  Tomas Frydrych

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter toolkit on Mac OS X

2008-05-30 Thread Emmanuele Bassi
On Fri, 2008-05-30 at 11:05 +0200, gianni wrote:
 I'd like to share my experience.

thanks.

 I have compiled Clutter on an intel Mac Os X 10.5.2. But I do not use
 any fink or port.

the 0.6.2 release with the OSX backend should be now available through
MacPorts.

 I've installed all dependencies from scratch in a clean system (If you
 want the ordered list of library to install just mail) that is to say
 gettext, libiconv .
 
 So I've tried with flavor osx and glx. 
 The one that i use is the glx one, work better don't really know why.

the native OSX backend is experimental, but it would be interesting to
know what did not work. with the GLX backend you are effectively using
the OSX native libraries through the layer of the Apple X11
implementation.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter toolkit on Mac OS X

2008-05-30 Thread Emmanuele Bassi
On Fri, 2008-05-30 at 14:12 +0200, gianni wrote:
  the native OSX backend is experimental, but it would be interesting to
  know what did not work.
 
 I've checked why, it's simply because I use clutter-gtk which need 
 clutter-x11.

yeah, that is a limitation of the clutter OSX backend: there is no way
to embed the Stage inside the GtkClutterEmbed widget, at the moment.

 I've tried the clutter-0.6.2 package and the osx flavour seems to run well .

cool. :-)

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] ClutterTexture in threads problem

2008-05-29 Thread Emmanuele Bassi
On Thu, 2008-05-29 at 15:42 +0200, gianni wrote:

   I've also modify the test_thread_func to re-set the texture with an
 other imageN.jpg with the function clutter_texture_set_from_file
 between calls ofclutter_threads_enter() and
 clutter_threads_leave(). 

no, this is wrong.

you should always change the UI inside the same thread that called
clutter_main(); this is guaranteed to work and be portable at the same
time.

in test-threads.c, the UI is manipulated *only* inside the
update_label_idle() function; you should save the data you want to
upload to the texture inside the data passed to the
clutter_threads_add_idle() and then update the texture using that data
inside the idle handler.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter Script Asserts

2008-05-28 Thread Emmanuele Bassi
On Wed, 2008-05-28 at 12:02 +0530, varun shrivastava wrote:
 hi
 
 When i try to un-merge a merge_id returned from
 clutter_script_load_from_file 
 i get following asserts

which version of Clutter are you using?

also, for bug reports you should always use Bugzilla, so we can keep
track of the issue.

could you open a bug in Bugzilla and attach a stack trace produced with
a debugger like gdb?

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter Script Asserts

2008-05-28 Thread Emmanuele Bassi
On Wed, 2008-05-28 at 07:53 +0100, Emmanuele Bassi wrote:

 could you open a bug in Bugzilla and attach a stack trace produced with
 a debugger like gdb?

never mind, I fixed the issue in the stable branch (for trunk, a
complete fix will land in the next 60 minutes, I need to commute to the
office first :-)).

thanks,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Extended Actor

2008-05-28 Thread Emmanuele Bassi
On Wed, 2008-05-28 at 20:36 +0800, HASWANI HARISH-VCKR47 wrote:
 Hi All,
  
 I found one extended actor ( for triangle).
 I've few basic doubts for that :
  
 At what point of during execution these function will be called:
 - clutter_triangle_class_init
 - clutter_triangle_class_init
 - clutter_triangle_finalize
 - clutter_triangle_dispose

these are part of the usual GObject usage. you should read the GObject
documentation at:

  http://library.gnome.org/devel/gobject/stable/

 - clutter_triangle_pick

this function will be called by the event handling process:

  
http://www.clutter-project.org/docs/clutter/stable/clutter-subclassing-ClutterActor.html

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Generic Shapes in clutter

2008-05-24 Thread Emmanuele Bassi
On Sat, 2008-05-24 at 14:36 +0200, Mike Massonnet wrote:

   How can i draw generic shapes like triangle, hexagon and all and how
   can i apply texture on such shapes.
  
  you have to subclass ClutterActor and override the ::paint() virtual
  function; inside it, you can call GL primitives and draw complex shapes
  the way to prefer.
 
 Does it work with cairo also?

no, for that you can use the ClutterCairo texture actor provided by the
clutter-cairo integration library. since Cairo does not have an OpenGL
backend[1], the ClutterCairo texture will give you a context from an
image surface and will then proceed to dump the contents of the drawing
onto a GL texture.

it's quite easy to write a composite actor with a ClutterCairo as an
internal child to draw a background, for instance; I've done it in my
Twitter client 'Tweet'[2] to have backgrounds with antialiased rounded
corners.

ciao,
 Emmanuele.

+++

[1] though Pippin has been working on an experimental OpenVG backend.
[2] http://github.com/ebassi/tweet/tree/master - see the
TweetStatusCell, the TweetStatusInfo and the TweetSpinner actors.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Sample Clutter Shader program

2008-05-23 Thread Emmanuele Bassi
On Fri, 2008-05-23 at 12:52 +0100, dilip devaraj wrote:
 Hello Clutter Group
 
 I am looking for a sample Clutter Shader program that makes use of the
 ClutterShader class.

the test-shader.c test case inside Clutter repository shows how shaders
support is usually handled.

 Also is there any documentation explaining how the Clutter
 architecture is.

it would be nice if you defined what you mean with architecture.
relationship between classes? the GL usage? the windowing system
interaction?

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Rendering video through clutter

2008-05-23 Thread Emmanuele Bassi
On Fri, 2008-05-23 at 15:00 +0100, dilip devaraj wrote:
 Hello Clutter Team
 
 I was trying to render video using clutter .I looked at applications
 like Widget ,woha,Youha present in toys directory.I am unable to
 compile the applications since it is unable to find clutter-gst-0.6
 and json-glib-1.0.

you have to install clutter-gst-0.6 from a tarball; the latest is:

  
http://www.clutter-project.org/sources/clutter-gst/0.6/clutter-gst-0.6.1.tar.gz

clutter-gst depends on GStreamer 0.10.

json-glib is needed for Youhaa, and it's available here:

  http://folks.o-hand.com/ebassi/sources/json-glib-0.6.2.tar.gz

 Also is there any application to render raw video files or mpeg files
 using clutter since the applications I saw used SVG based files

video and audio playback depend on the presence of a library for
decoding them; clutter-gst is the integration library between Clutter
and GStreamer. Clutter itself doesn't provide any audio/video rendering.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] [ANNOUNCE] Clutter Vala bindings 0.6.2

2008-05-15 Thread Emmanuele Bassi
hi everyone;

clutter-vala 0.6.2, the Vala bindings for Clutter 0.6 are available on:

  http://www.clutter-project.org/sources/clutter-vala/0.6/

MD5 checksum:

  97d41aff8afbfaa5db726e26546467bd  clutter-vala-0.6.2.tar.gz

Changes since 0.6.0:
* Require clutter = 0.6.2, clutter-cairo = 0.6.1, vala = 0.3.1
* Wrap clutter-gtk-0.6 and clutter-cairo-0.6 API
* Fix bindings for the threads_add_idle() and threads_add_timeout()
  family of functions [Ali Sabil]
* Use metadata attributes to generate the init() and init_with_args()
  methods
* Mark nullable arguments
* Fix delegates for the alpha and effect complete functions

Vala is a new programming language that aims to bring modern
programming
language features to GNOME developers without imposing any additional
runtime requirements and without using a different ABI compared to
applications and libraries written in C.

Clutter is an open source software library for creating fast, visually
rich and animated graphical user interfaces. Clutter is licensed under
the terms of the GNU Lesser General Public License version 2.1.

More information about Clutter is available at

  http://www.clutter-project.org

More information about Vala is available at

  http://live.gnome.org/Vala

have fun!

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Problems with Threads

2008-05-14 Thread Emmanuele Bassi
On Wed, 2008-05-14 at 15:03 -0300, Pedro Casagrande de Campos wrote:
 Hi Emmanuele,
 
 
 Thanks for the quick answer. The clutter idle handle worked as
 expected, but I still have a doubt regarding this. The problem is that
 the idle state is not executed when a timeline is running, what will
 happens most of the time on my application.

you should use:

  clutter_threads_add_idle_full ()

and pass a higher priority than the priority of the timeline in Clutter,
like G_PRIORITY_DEFAULT + 30.

I've updated the test-threads.c in trunk and it doesn't have any problem
with the timeline that it runs (i.e., the idle handler gets executed
perfectly fine).

if you want, you can also use:

  clutter_threads_add_timeout (10, handler, NULL)

instead of the idle - the timeout handlers are usually executed at a
higher priority than the idle handlers (which are executed only when the
main loop doesn't have anything to do).

 static void
 timeline_complete (ClutterTimeline *timeline)
 {
   g_usleep (10);
 }

this will not do what you think it does. it will block the main loop,
preventing the idle for being fired until the timeline relinquishes
control to the main loop itself - that is, at the end of the time slice.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Problems with Threads

2008-05-13 Thread Emmanuele Bassi
On Tue, 2008-05-13 at 10:15 -0300, Pedro Casagrande de Campos wrote:
 Hi,
 
 
 I'm having some problems regarding multiples threads accessing clutter 
 resource.
 
 On my application I'm starting 2 threads: one to listen for the xmlrpc
 requests to the server
 application and other to control the application's state. The problem
 is that the both threads will need to call function that will make
 clutter updates on the ui.

no, this is not supported and will most likely break.

when you want to update the UI inside the thread that did not call
clutter_main() you should install an idle handler with:

  clutter_threads_add_idle (idle_ui_update, NULL):

and declare idle_ui_update() as:

  static gboolean
  idle_ui_update (gpointer data)
  {
/* from here it's safe to update the UI */
  }

the idle handler is guaranteed to be invoked from the same thread that
has called clutter_main() - and this is the only portable and reliable
way to use Clutter with multiple threads.

you should have a look at the test-threads.c test case shipped in the
Clutter tarball, inside the tests/ directory.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Problems with Threads

2008-05-13 Thread Emmanuele Bassi
On Tue, 2008-05-13 at 10:15 -0300, Pedro Casagrande de Campos wrote:

oh, I forgot: you're also missing clutter_threads_init()

   g_thread_init (NULL);

  clutter_threads_init ();

   clutter_init (argc, argv);

but, seriously: use idle handlers to manipulate the UI from the same
thread that called clutter_main().

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Minor annoyances about implementing backends

2008-05-12 Thread Emmanuele Bassi
On Sat, 2008-05-10 at 23:15 +0100, Tommi Komulainen wrote:

 Some more details below:
 
   ClutterBackend::create_stage
   -- This function is used to create the stage implementation. It will
  receive as an argument the ClutterStage instance that is wrapping
  the actual implementation being created. The backend must create
  its stage implementation and call _clutter_stage_set_window() with
  the wrapper and the stage implementation instance:
 
_clutter_stage_set_window (wrapper, CLUTTER_STAGE_WINDOW (impl));
 
  The backend must also call clutter_actor_realize() on the stage
  implementation,
 
 Err, why the backend? Also as realize is expected to set the new stage
 current, isn't this making a mess of any context management?

it has to do with the default stage and the fact that we need a GL
context ready during the init sequence to be able to query the features.
I tried delaying the realization and require it for the default stage
only, but it seems to be breaking.

 
  and then check if the stage has been realized, using
  the CLUTTER_ACTOR_IS_REALIZED() macro; if the stage was not
  realized, it must return NULL and set the passed GError.
 
 Again, why in the backend?

because we need to report back to clutter_init() that the default stage
failed to be initialized.

  Might be worth noting that this leaves the
 wrapper in inconsistent state as a result of previous call to
 _clutter_stage_set_window() -- the stage should've been destroyed by
 now (since, well, create failed)

true; I'll update the other backends.

  Inside the ::realize function the stage implementation should:
   - create the drawing context (either GL or GLES) and assign it
 to the backend, if it's not already present
 
 What does 'assigning to backend' mean? That you can only have single GL 
 context?

yes. in theory it would be possible, through accurate locking and by
migrating caches, to have multiple contexts in the same process - but
this is non advisable.

 
   - set the CLUTTER_ACTOR_REALIZED flag on *both* the wrapper and the
 stage implementation
   - call clutter_stage_ensure_current() with the wrapper instance
 
 Why in the backend? Especially manipulating the wrapper state feels
 bordering silly. IMO the wrapper should forward all relevant state
 change from the wrapper to implementation (documentation suggests this
 is the case) but also mirror the resulting state from implementation
 back to the wrapper.

flags cannot be forwarded; the only reason to set the realized state
on the stage wrapper from within the stage implementation is that the
stage implementation will then have to call
clutter_stage_ensure_context() with the stage wrapper as the argument;
the ensure_context() call checks whether the stage wrapper is realized
to control the context assignment.

 Just to note, the consequence of not setting REALIZED on the wrapper
 resulted in realize+realize call sequence into the backend, no
 unrealize in between. This raises a question, which of the following
 is correct:
 
 1)
 realize(): g_assert(!REALIZED)
 show(): g_assert(!MAPPED)
 hide(): g_assert(MAPPED)
 unrealize(): g_assert(REALIZED)
 
 2)
 realize(): if(REALIZED) return;
 show(): if (MAPPED) return;
 hide(): if (!MAPPED) return;
 unrealized(): if (!REALIZED) return;

showing and hiding might be called multiple times, so an assertion would
be quire useless. so:

3)
realize(): g_assert (!REALIZED)
show(): if (MAPPED) return;
hide(): if (!MAPPED) return;
unrealized(): g_assert (REALIZED)

the layers above should keep consistency anyway, but they don't protect
from direct calling of the vfuncs.

 Also, need / expectation to chain up to parent is rather vague.

if you're subclassing from straight ClutterActor, and if you set the
flags yourself, you shouldn't need to chain up.

  Inside the ::unrealize function the stage implementation should:
 
   - unset the CLUTTER_ACTOR_REALIZED flag
 
 But not on the wrapper? What about chaining up to parent? Would it do that?

yes.

   - call _clutter_shader_release_all() if the backend supports shaders
 and the GL programmable pipeline
 
 Is there some call ordering constraint requiring this to be done in
 the backend rather than in the core / wrapper?

this is mostly a fluke - I was reading the GLX backend code. the shaders
should be released before destroying the GL context, though.

 
   - destroy the native window handle
   - call clutter_stage_ensure_context() with the wrapper instance
 
 Err, why? Didn't we just destroy the underlying resources, including GL 
 context?

no, the GL context should still be alive when a stage is destroyed.

the ensure context will make sure that the backend knows that the GL
context should be unassigned. it's part of the clean up process.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send

Re: [clutter] Minor annoyances about implementing backends

2008-05-12 Thread Emmanuele Bassi
(figured to keep the list cc-ed)

On Mon, 2008-05-12 at 11:47 +0100, Tommi Komulainen wrote:

   it has to do with the default stage and the fact that we need a GL
   context ready during the init sequence to be able to query the features.
   I tried delaying the realization and require it for the default stage
   only, but it seems to be breaking.
 
 What I mean is that why doesn't the wrapper do it, something like:
 
 wrapper-impl = backend-create_stage()
 wrapper-impl-realize();
 if (!REALIZED(wrapper-impl)) { ... }
 
 Isn't it the wrapper doing the calls into the backend in the first
 place? So it could easily just do two calls instead of one and not
 start overlapping the semantics in the API.

I revisited the code this morning, and by double checking some of the
assumption, I was able to avoid a lot of stuff. now the default stage is
realized in clutter_init() and clutter_init_with_args() - because we
need it to be present before the initialization sequence terminates -
while the other stages are realized when clutter_actor_show() is called
with them.

   yes. in theory it would be possible, through accurate locking and by
   migrating caches, to have multiple contexts in the same process - but
   this is non advisable.
 
 Err, so what exactly is ClutterBackend::ensure_context supposed to do then?

it ensures that the GL context is attached to the native window held by
the stage implementation.

 It's the stage parameter that I find misleading at the moment. To me
 it implies each stage has its own context (NSOpenGLContext:makeCurrent
 is separate from :setView, associating a view/window with the context)
 -- in GLX you need both it seems.

in GLX you create the GLX context and the call glXMakeCurrent() on it
with the X drawable you want to make current.

ensure_context() allows the backend to make the stage as the current
drawable for the GL context the backend is keeping.

 I think it would be more clear if backend API had a separate
 create_context() method and ensure_context(stage, context)

what might be clearer would be creating the GL context when creating the
backend; I don't know whether this is entirely feasible.

   flags cannot be forwarded; the only reason to set the realized state
   on the stage wrapper from within the stage implementation is that the
   stage implementation will then have to call
   clutter_stage_ensure_context() with the stage wrapper as the argument;
   the ensure_context() call checks whether the stage wrapper is realized
   to control the context assignment.
 
 I mean something along the lines:
 
 clutter_stage_realize()
 {
   SET_FLAGS(self, REALIZED); /* optimistic, needed for ensure_context etc.  */
   backend-realize();
   if (!REALIZED(backend))
 UNSET_FLAGS(self, REALIZED); /* magic! back in sync with backend */
   self-ensure_context(); /* and not overlapping APIs */
 }

yeah, that would work. :-)

 
   3)
   realize(): g_assert (!REALIZED)
  show(): if (MAPPED) return;
   hide(): if (!MAPPED) return;
   unrealized(): g_assert (REALIZED)
 
   the layers above should keep consistency anyway, but they don't protect
   from direct calling of the vfuncs.
 
 Umm, has that ever been legal? What strikes me as odd is that as you
 said upper layers are enforcing consistent state transitions, but
 backends / implementations can't rely on it. Why bother? Makes a bad
 API contract IMO.

the implementations can rely on it, if the layers above are behaving
properly; even though I'd like to keep the backends safe even in case of
misuse.

  - destroy the native window handle
  - call clutter_stage_ensure_context() with the wrapper instance
   
Err, why? Didn't we just destroy the underlying resources, including GL 
  context?
 
   no, the GL context should still be alive when a stage is destroyed.
 
 So we're creating the context on realize and never destroying it?

obviously not: the GL context is destroyed with the backend.

 This makes no sense if you assume multiple GL contexts. It would be
 far more clear if you explicitly state there's support only for single
 context, and that it needs to be created during backend init. Perhaps
 even add an explicit create_context() method on the backend API and
 then clutter core could manage the contexts whichever way it chooses
 (ensure_context(stage, context))

the multiple GL contexts is a path we tried and did not work. yes: we
should be more explicit about the single GL contexts guideline, but I
always thought that multiple GL context are evil anyway and the one
context per process was already a guideline for GL-based applications.

   the ensure context will make sure that the backend knows that the GL
   context should be unassigned. it's part of the clean up process.
 
 Don't we have the wrapper calling ensure context at proper times already?

no, we do it in the stage implementation because it is easier. :-)

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218

Re: [clutter] Clutter Embedded problems

2008-05-07 Thread Emmanuele Bassi
On Wed, 2008-05-07 at 14:58 +0100, Matthew Allum wrote:
 Hi;
 
 On Wed, 2008-05-07 at 15:23 +0200, Denis Gillier wrote:
  
  We found the problem, it seems that the EGL back-end event management  
  has not been update since the 0.4.
  
  You added in 0.5 or 0.6 an optimisation in clutter_main.c to limit  
  the number of CLUTTER_MOTION events.
  This is based on the event-any.time value.
  
  In clutter_event_egl.c this value is always reset to 0 so it's reject  
  by the optimisation part of clutter_do_event() in clutter_main.c.
  
 
 Oh suck :( the SDL backend then likely suffers the same fate :(

yes indeed. I have committed a fix right now in trunk for the SDL
backend; it's generic enough so that it can be used by other backends,
like the EGL native one.

if people could test it then I'd feel comfortable enough to backport it
to clutter-0-6.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter Embedded problems

2008-05-07 Thread Emmanuele Bassi
On Wed, 2008-05-07 at 16:04 +0100, Emmanuele Bassi wrote:

 yes indeed. I have committed a fix right now in trunk for the SDL
 backend; it's generic enough so that it can be used by other backends,
 like the EGL native one.

just for reference, this is the commit that fixes it:

http://svn.o-hand.com/view/clutter/trunk/clutter/clutter/sdl/clutter-event-sdl.c?rev=2681view=diffr1=2681r2=2680p1=trunk/clutter/clutter/sdl/clutter-event-sdl.cp2=/trunk/clutter/clutter/sdl/clutter-event-sdl.c

the change is relatively easy.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter on OSX

2008-05-01 Thread Emmanuele Bassi

On Wed, 2008-04-30 at 20:46 -0700, Pat Ferrel wrote:
 I’m trying to run configure on OSX Leopard.  The first error is 
 
 checking GL/gl.h usability... no
 checking GL/gl.h presence... no
 checking for GL/gl.h... no
 configure: error: Unable to locate required GL headers
 
 In xcode I can compile and run OpenGL examples.  Do I have something
 set up wrong for running ./configure in terminal? 

you probably did not use:

  ./configure --with-flavour=osx

which will tell the configure script to configure Clutter with the OSX
backend.

I also assume you did read:

  http://developer.imendio.com/projects/gtk-macosx/build-instructions

on how to build part of the gtk+ stack on OS X using jhbuild, which is
strongly recommended until somebody start packaging Clutter with either
MacPorts or by shipping a native OS X package.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] python cluttercairo segfault

2008-04-24 Thread Emmanuele Bassi

On Wed, 2008-04-23 at 19:50 +0200, Dirk Meyer wrote:
 Hi,
 
 when using the cairo bindings from pyclutter my application
 segfaults. I get a segfault as soon as I want to get the cairo context
 using get_context. The C examples in the clutter-cairo package work,
 so it looks like it is a bug in the Python bindings. I use the latest
 versions of clutter, clutter-cairo and pyclutter.

yep, I noticed a segfault as well after the 0.6.1 release of
clutter-cairo - I'm investigating it right now.

 Looking at the cairo bindings code, I'm kind of confused. The
 auto-generated cluttercairo.c has a function _wrap_clutter_cairo_new
 that does NOT call clutter_cairo_new new at all

yep, that is the intended behaviour. the python bindings will construct
the GObject passing the constructor properties 'surface-width' and
'surface-height'. you won't see clutter_*_new() calls in pyclutter
unless you override the pygobject construction mechanism with your own
code - which is discouraged, unless the constructor performs something
else than g_object_new() - which is, in turn, discouraged.

  and the size is all wrong. Example:

 | texture = clutter.cluttercairo.CairoTexture(100, 100)
 | print texture.get_size()# returns 0,0 
 | context = texture.cairo_create()# segfault
 
 Maybe I'm doing something wrong here.

yes, you're doing something wrong. :-)

the size you're passing to the CairoTexture constructor is the actual
size of the cairo surface, not the size of the actor. the size of the
actor is decided using the set_size() method - which will change the
size of the texture.

you might want a 300x200 surface spread on a 640x480 texture, or a
800x600 surface scaled down to 400x300. that's why the constructor
parameters are called 'surface-width' and 'surface-height' and not
'width' and 'height'.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] python cluttercairo segfault

2008-04-24 Thread Emmanuele Bassi

On Thu, 2008-04-24 at 10:15 +0100, Emmanuele Bassi wrote:
 On Wed, 2008-04-23 at 19:50 +0200, Dirk Meyer wrote:
  Hi,
  
  when using the cairo bindings from pyclutter my application
  segfaults. I get a segfault as soon as I want to get the cairo context
  using get_context. The C examples in the clutter-cairo package work,
  so it looks like it is a bug in the Python bindings. I use the latest
  versions of clutter, clutter-cairo and pyclutter.
 
 yep, I noticed a segfault as well after the 0.6.1 release of
 clutter-cairo - I'm investigating it right now.

should have been fixed in revision 2582.

at least, I cannot reproduce a segmentation fault anymore.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] [ANNOUNCE] Clutter Cairo 0.6.1

2008-04-23 Thread Emmanuele Bassi
hi everyone;

Clutter Cairo 0.6.1 is now available for download at:

  http://www.clutter-project.org/sources/clutter-cairo/0.6/

MD5 checksums:

  ef3f801017b29a8d549edbee55c95fbd  clutter-cairo-0.6.1.tar.gz
  f5d9f4554cb3ad10b5e0fe0f454de683  clutter-cairo-0.6.1.tar.bz2

this is the second release of the stable 0.6 cycle.

Clutter is an open source software library for creating fast, visually
rich and animated graphical user interfaces. Clutter is licensed under
the terms of the GNU Lesser General Public License version 2.1.

Clutter Cairo is a module providing a ClutterTexture actor which
provides a Cairo context.

Clutter Cairo currently requires:

  * Clutter 0.6.2 or higher
  * Cairo 1.4.0 or higher

The official website is: http://www.clutter-project.org
The Clutter blog is at:  http://www.clutter-project.org/blog
To subscribe to the Clutter mailing list, send mail to: clutter
[EMAIL PROTECTED] 
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference is at:
http://www.clutter-project.org/docs/pyclutter/stable/

* Notes

   o Bugs should be reported to http://bugzilla.o-hand.com
   o This release will overwrite all the files from the previous
 releases of the 0.6 series.

Overview of changes between 0.6.0 and 0.6.1
===

* Require clutter-core = 0.6.2
* Backport the clutter_cairo_surface_resize() and
  clutter_cairo_create_region() API from trunk [Iain Holmes]

have fun,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] JSON objects question

2008-04-22 Thread Emmanuele Bassi

On Tue, 2008-04-22 at 10:28 -0500, Malluru, Puri wrote:
 Hi
 
 I am building a simple template based screen mechanism using JSON
 files and loading them into clutter script object. I am wondering
 whether there is any way to create arbitrary name-value pairs in JSON
 file that can be queried using clutter script api functions.

no, not at the moment at the least.

 Below is an example of a JSON file that I have. I was able to query
 for “screen” and get the ClutterGroup object just fine. But I like to
 query for “screenname” and “nextscreen” and get their values. I don’t
 see any errors when I merge this file into a script object. But I get
 NULL object when I do clutter_get_object().

because they are not GObjects, but just strings.

ClutterScript is a way to define objects, not custom data. you might
want to use a separate JSON file for that, probably parsing it directly
with JsonParser from json-glib.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter in Freevo

2008-04-15 Thread Emmanuele Bassi

On Mon, 2008-04-14 at 17:17 -0700, Blake Ramsdell wrote:
 On Mon, Apr 14, 2008 at 5:03 PM, Blake Ramsdell [EMAIL PROTECTED] wrote:
   ~$ python -c import clutter
   Woo!1!!
 
   ** (-c:25584): WARNING **: failed to bind GLXGetProcAddress or
   GLXGetProcAddressARB
 
 ~/Source/OpenSource$ python -c import sys; import dl;
 sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL); import clutter
 Woo!1!!
 ~/Source/OpenSource$
 
 So not sure, but I think that changing the flags that Python uses when
 he calls dlopen seems to have an effect (it didn't complain about the
 symbol missing any longer, and the module init was being called).
 
 Not sure what impact this has in general -- I mean, now I've made it
 so there's a bunch of new symbols in the global symbol space which may
 or may not be a good idea.

patching clutter/__init__.py to set the flags on import might do the
trick:

+try:
+import dl
+sys.setdlopenflags(dl.RTLD_LAZY|dl.RTLD_GLOBAL)
+except ImportError:
+pass
+
 # For broken embedded programs which forgot to call Sys_SetArgv
 if not hasattr(sys, 'argv'):
 sys.argv = []

(with the lazy flag should still work).

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] A little whining about version numbers

2008-04-15 Thread Emmanuele Bassi

On Mon, 2008-04-14 at 12:11 -0700, Blake Ramsdell wrote:
 On Thu, Apr 10, 2008 at 12:20 AM, Emmanuele Bassi [EMAIL PROTECTED] wrote:
   I should also strongly point out that, by using trunk, you're tracking a
   highly unstable development branch. so, if something breaks, you get to
   keep both the pieces.
 
 Or I can glue them back together if you want. Like PyClutter wants the
 stage parameter for redraw. I can fix this by either requiring that
 redraw take a stage parameter or make redraw a member of the stage
 object (though I suspect you might want to refactor the C name to be
 clutter_stage_redraw and move it to clutter_stage.h in that case).

clutter_redraw() should not be used by applications - every application
code should use the ClutterActor::queue_redraw() method instead.

in any case, and after the experience of 0.2, 0.4 and 0.6, making the
bindings track trunk is an incredibly bad idea; the bindings will have
to wait until the API in trunk enters a slushy state, with a
semi-frozen API. unless, obviously, people are willing to keep
submitting patches when trunk changes.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter in Freevo

2008-04-15 Thread Emmanuele Bassi

On Mon, 2008-04-14 at 19:28 -0700, Blake Ramsdell wrote:
 On Mon, Apr 14, 2008 at 3:24 PM, Emmanuele Bassi [EMAIL PROTECTED] wrote:
   no, since libGL.so might not be the actual library (it really depends on
   the platform).
 
 By the way, I see other examples of people going directly to
 dlopen(libGL.so) -- isn't it the OpenGL equivalent of libc? Like
 doesn't everyone link to that exact name regardless of platform?

Clutter does not only work with GL, but with GL/ES as well; we'd have to
use the correct library name depending on the platform we are targeting.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] [ANNOUNCE] PyClutter 0.6.2

2008-04-15 Thread Emmanuele Bassi
hi everyone;

PyClutter 0.6.2 is now available for download at:

  http://www.clutter-project.org/sources/pyclutter/0.6/

MD5 checksums:
  4560b8b3782994b884712bd653bdebb6  pyclutter-0.6.2.tar.gz
  de070811cc7a994980b9e4de8cc87f4a  pyclutter-0.6.2.tar.bz2

this is the second release of the stable 0.6 cycle.

Clutter is an open source software library for creating fast, visually
rich and animated graphical user interfaces. Clutter is licensed under
the terms of the GNU Lesser General Public License version 2.1.

PyClutter is a module providing Python bindings for Clutter.

PyClutter currently requires:

  * GLib 2.14.0 or higher
  * GTK+ 2.10.0 or higher
  * Clutter 0.6.2 or higher
  * PyGObject 2.12.1 or higher
  * Python 2.3.5 or higher

Optionally, PyClutter depends on:

  * clutter-gst 0.6.1 or higher
  * clutter-gtk 0.6.0 or higher
  * clutter-cairo 0.6.0 or higher

The official website is: http://www.clutter-project.org
The Clutter blog is at:  http://www.clutter-project.org/blog
To subscribe to the Clutter mailing list, send mail to: [EMAIL PROTECTED] 
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference is at: http://www.clutter-project.org/docs/pyclutter/stable/

* Notes

   o Bugs should be reported to http://bugzilla.o-hand.com

   o Documentation is still not fully covering the whole clutter
 module, and it's not covering any sub-module. If you are
 interested in contributing to PyClutter you can start by
 adopting a class and documenting it using the docbook
 templates already present.

Overview of changes between 0.6.0 and 0.6.2
===

* Require clutter-core = 0.6.2
* Require Python = 2.4.0
* Fix bug #841 - override the dlopen() flags to allow loading
  symbols from the underlying C libraries [Blake Ramsdell]
* Add more documentation
* Fix the BehaviourEllipse constructor to follow the same
  pattern of the other behaviours
* Fix the clutter.tidy optional module

have fun,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter in Freevo

2008-04-14 Thread Emmanuele Bassi

On Mon, 2008-04-14 at 23:24 +0100, Emmanuele Bassi wrote:
  
  Is that the correct solution?
 
 no, since libGL.so might not be the actual library (it really depends on
 the platform). NULL should open every symbol in the current module
 space:

just add more details: Clutter dlopen()s its own address space as well,
to find functions like the alpha functions with ClutterScript. it all
works fine in C, Perl and I'd guess C++ and Ruby; it doesn't work with
Python[1]. that's why it's a Python issue, which should be solved at the
Python level. dlopen()-ing libclutter-$backend-$version.so is not going
to work, from a maintainership point of view[2].

ciao,
 Emmanuele.

+++

[1] I had to add a whitelist of the alpha functions Clutter provides,
with their name and a function pointer.
[2] and let's be serious: if only python has this issue, it tells a lot
about python.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Clutter in Freevo

2008-04-13 Thread Emmanuele Bassi

On Sun, 2008-04-13 at 10:43 +0200, Dirk Meyer wrote:
 Hi everybody,
 
 We (the Freevo Project) are searching for a new GUI lib to give the
 new Freevo 2.0 some eye candy. Clutter looks very good and may be our
 new GUI backend. I played with it and I have some questions maybe one
 of you can answer. I use pyclutter 0.6.

cool.

 First of all, the animation flicker sometimes. It look like the do not
 use sync to vblank. How do I enable it? I looked around and found
 clutter.feature_available(clutter.FEATURE_SYNC_TO_VBLANK) which
 returns True. How do I set a feature?

sync-to-vblank is automatically used unless clutter cannot enable it.
you're using pyclutter - aren't you also using an nvidia card,
perchance? there are some problems while using python, clutter and
drivers/libraries that require dlopen()-ing.

 The next question is about threads. I found out that some parts should
 be called from the clutter thread, most of them can be called from any
 thread. But what is thread safe? I know I can call threads_enter() and
 threads_leave, but do I need to? Is it safe to create an object
 without calling this functions? What about reading some attributes
 (e.g. get_x())? What about setting attributes?

Clutter is mostly thread-aware, not thread-safe. that is: if you acquire
the main lock (threads_enter()/threads_leave()) you are safe to use any
Clutter API. otherwise, you really aren't.

to use Clutter API from different threads you should split the UI
manipulation code from the rest of the application code; when you need
to modify the UI from a thread different than the one where the GLib
main loop is running, then you can install an idle source and call the
UI code from there:

  def do_updates (data):
clutter.threads_enter()

# here it is safe to update the UI
do_stuff_with_clutter(data)

clutter.threads_leave()

# do not call again
return False

  def queue_ui_updates (data):
gobject.idle_add (do_updates, data)

  ...

# from within any thread
queue_ui_updates (state)

the idle callback do_updates is guaranteed to be called from within
the same thread where the main loop is running.

 Now some fancy stuff we will need. You support gstreamer as video
 player inside clutter. We also want to support mplayer and xine. In
 xine we created our own video driver that writes to shared memory (it
 is a different process). If I understand it correctly we need to copy
 the content of each frame into a clutter.Texture() object. That will
 be done in C, ignore my Python example here. Can I lock the texture
 somehow when copying a new image it it?

texture uploads are atomic: they either succeed or they don't.

  Or is threads_enter enough?

see above, re: threads. the clutter-gst video sink is just using an
AsyncQueue to store the buffers, and an idle source to upload them to
the texture. it shouldn't be too much complicated to get data from xine
and push it to the texture in the same way.

  Is
 there anything else I have to do? What format does a Texture support?
 Only ARGB?

also YUV2, if the driver suppors it (there's a feature for that as
well).

  Including mplayer is a bit more tricky. IMHO the best
 option is to use XComposite? Has anyone ever tried including a
 XComposite as clutter Texture?

this I'll leave for others to reply. :-)

 OK, that's all for now. I hope someone can help us out here.

hope this helps.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] A little whining about version numbers

2008-04-10 Thread Emmanuele Bassi

On Wed, 2008-04-09 at 18:24 -0700, Blake Ramsdell wrote:

 Am I missing something philosophically here? Is this just a simple .pc
 error in clutter-cairo?

yes, it's an error in clutter-cairo.

I should also strongly point out that, by using trunk, you're tracking a
highly unstable development branch. so, if something breaks, you get to
keep both the pieces.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Undefined reference error in many clutter/toy apps

2008-04-09 Thread Emmanuele Bassi

On Mon, 2008-04-07 at 23:26 +0300, Erik Karlsson wrote:

 Is there some known issue here that I have not understood?

it's possibly a bug in the symbols visibility; I've been using the
libtool flags to make the library private symbols not appear in the
final shared object, but forgot a couple of places.

could you try checking out trunk again and seeing if the commit in
revision 2446 fixed this?

thanks.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Thought about using clutter and timelines

2008-04-03 Thread Emmanuele Bassi

On Sun, 2008-03-30 at 02:01 +0100, koos vriezen wrote:

   Also check the new marker support in trunk (and scores) - that may be
   able to be used as you describe with some wrapping, but Im not 100% on
   that.
 
 I saw the marker addition. But I didn't quite understand how to use
 this that I would benefit from this. I guess I give the sources
 another look.

a quick overview on the markers API:

markers are per-timeline unique identifiers attached to a specific frame
or at a specific time. each time a timeline reaches a marker, a signal
will be emitted.

for instance, if you have a timeline of duration=1000 and you want to
receive notification of it being halfway through (to start another
timeline or to update the animation), you just need to add a marker at
the given time and connect to the ::marker-reached signal:

  clutter_timeline_add_marker_at_time (timeline, half, 500);
  g_signal_connect (timeline, marker-reached, half_cb, NULL);

the ::marker-reached signal is also detailed with the marker name, so
you can have multiple markers and a different callback for each one:

  clutter_timeline_add_marker_at_time (timeline, foo, 250);
  clutter_timeline_add_marker_at_time (timeline, bar, 500);
  clutter_timeline_add_marker_at_time (timeline, baz, 750);

  g_signal_connect (timeline, marker-reached::foo, foo_cb, NULL);
  g_signal_connect (timeline, marker-reached::bar, bar_cb, NULL);
  g_signal_connect (timeline, marker-reached::baz, baz_cb, NULL);

if a frame with a marker attached was skipped, the timeline will still
emit the ::marker-reached signal, exactly like we guarantee that
the ::completed signal will be emitted even if the last frame has been
dropped.

the Score object has also been changed to use markers: you can now
append a timeline at a specific marker on the parent.

+++

to reply to your first email: what you need is ClutterScore.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] [ANNOUNCE] Clutter 0.6.2 (core)

2008-04-03 Thread Emmanuele Bassi
hi everyone;

Clutter 0.6.2 is now available for download at:

  http://www.clutter-project.org/sources/0.6/

MD5 Checksums:
  9a1f6ebc4a5fed5d5a316ad843501fdc  clutter-0.6.2.tar.gz
  fb96af6f7339a0ce82a55814ad169249  clutter-0.6.2.tar.bz2

Clutter is an open source software library for creating fast, visually
rich and animated graphical user interfaces. Clutter is licensed under
the terms of the GNU Lesser General Public License version 2.1.

Clutter currently requires:

  * GLib = 2.14.0
  * GdkPixbuf
  * Pango 1.x
  * OpenGL = 1.2 or OpenGL ES 1.1
  * GLX, SDL (Unix and Win32), Cocoa or an EGL Implementation

The official website is: http://www.clutter-project.org
The Clutter blog is at:  http://www.clutter-project.org/blog
To subscribe to the Clutter mailing list, send mail to: clutter
[EMAIL PROTECTED] 
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference: http://www.clutter-project.org/docs/clutter/0.6/

* Notes

   o This is a stable, bug fix release of Clutter 0.6.

   o This version is fully API and ABI compatible with the previous
 0.6 releases.

   o This version is API and ABI incompatible with previous stable
 release of Clutter, 0.4.2.

   o This version is parallel installable with Clutter 0.4. Installing
 this version will overwrite the files from the installation of
 Clutter 0.6.0 as well as the files from the installation of a SVN
 checkout of the current stable branch (clutter-0-6).

   o Bugs should be reported to: http://bugzilla.o-hand.com

What's new in Clutter 0.6.2
---

 * List of changes between 0.6.0 and 0.6.2

   o The EGL flavour will now install its backend-specific header.

   o The Stage in the X11 flavours will completely relinquish control
 over its position and size, if it is using a foreing window to
 draw its contents.

   o Small fixes in ClutterModel API.

 * List of bugs fixed

   o #358 - window resizing doesn't show scaled stage
   o #800 - CLUTTER_ALPHA_EXP_INC overflows
   o #822 - Fix clutter_actor_lower() 
   o #824 - ClutterEntry should handle its own key events
   o #831 - configure.ac missing osx flavour help
   o #839 - Crash if put cursor over topmost pixel
   o #860 - ClutterAlpha leaks 

Thanks to all the contributors:

  Johan Bilien
  Havoc Pennington
  Robert Bragg
  Neil Roberts
  Peter Enzerink
  Murray Cumming

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



RE: [clutter] [ANNOUNCE] Clutter 0.6.2 (core)

2008-04-03 Thread Emmanuele Bassi

On Thu, 2008-04-03 at 11:36 -0300, Estevam Fabio wrote:
 Emmanuele,
 
 Just correcting the URL:
 http://www.clutter-project.org/sources/clutter/0.6/

yeah, the usual copy and paste error :-)

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] tidy-types.defs missing from pyclutter-0.6.0.tar.bz2

2008-03-06 Thread Emmanuele Bassi

On Thu, 2008-03-06 at 10:47 +0100, Miha Tomšič wrote:
 Hello!
 
 I am new to clutter and I am still fiddling with examples and I wanted
 to take a look at tidy and its python bindings.
 
 First the make complained about missing tidy-types.defs:
  IOError: tidy-types.defs not found in include path ['', '.', '.']

yup, forgot to add it to EXTRA_DIST. it's been fixed in trunk, thanks
for the report (even though, next time, could you please use Bugzilla?
it's easier for me, you and everyone else interested to track bugs
there).

 And now it compiles but I get the following message:
 
 ***INFO*** Generating tidy.c from tidy.defs
 Could not write method TidyCellRenderer.get_cell_actor: No ArgType for
 const-GValue*
 Could not write method TidyStylable.list_properties: No ArgType for guint*
 Could not write method TidyStylable.find_property: No ArgType for GParamSpec*
 Could not write method TidyStylable.set: varargs functions not supported
 Could not write method TidyStylable.get: varargs functions not supported
 Warning: Constructor for TidyActor needs to be updated to new API
  See http://live.gnome.org/PyGTK_2fWhatsNew28#update-constructors
 Warning: Constructor for TidyStylable needs to be updated to new API
  See http://live.gnome.org/PyGTK_2fWhatsNew28#update-constructors
 ***INFO*** The coverage of global functions is 100.00% (2/2)
 ***INFO*** The coverage of methods is 91.67% (55/60)
 ***INFO*** There are no declared virtual proxies.
 ***INFO*** There are no declared virtual accessors.
 ***INFO*** There are no declared interface proxies.

yes, it's known: not every object and method of the C library has been
wrapped or bound. this is not a big deal, as:

- you have to explicitly install the C library from SVN
- you have to explicitly turn on the submodule creation in pyclutter

I'll keep working on having full tidy bindings, but given the fact that
the library itself is kind of a moving target, the submodule might lag
behind a bit.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Porting from ClutterLayout (0.4) to 0.6

2008-02-25 Thread Emmanuele Bassi

On Mon, 2008-02-25 at 15:10 +0100, Murray Cumming wrote:
 On Sat, 2008-02-23 at 13:48 +0100, Murray Cumming wrote:
  On Fri, 2008-02-22 at 16:41 +0100, Murray Cumming wrote:
   Is there any plan to add an equivalent for the old ClutterBox,
   ClutterVBox and ClutterHBox containers?
   http://clutter-project.org/docs/clutter-ClutterBox.html
  
  And may I this old code as the basis for a custom container example in
  the tutorial? I'd like the examples to be public domain licenced.
 
 I'm going ahead with this in the hope that it will be OK.

that code was partly broken, even though it showed the process. the code
in tidy is more correct and, in general, should be regarded as a
reference implementation.

 Clutter*Box in 0.4 implements the child positioning by implementing the
 ClutterLayout interface.
 http://svn.o-hand.com/view/clutter/branches/clutter-0-4/clutter/clutter-hbox.c?rev=1328view=markup
 
 That has been removed in Clutter 0.6.

yes, even though I'd rather move part of the layout work Havoc has been
working on inside Tidy.

 TidyFrame seems like the simplest example so far for the new way of
 doing things with Clutter 0.6. It seems to position its child during the
 ClutterActor::request_coords() implementation.
 http://svn.o-hand.com/view/tidy/trunk/tidy/tidy-frame.c?rev=105view=markup

it repositions its children when adding it (in the override for the
ClutterContainer::add virtual function) and when being requested a new
bounding box.

 Is this the generally recommended way to do things with 0.6, or am I not
 seeing some more explicit mechanism?

there is no more explicit mechanism: you want a layout to recompute the
position of its children when actually adding the children and when
being asked to resize itself. this did not change between 0.4 and 0.6.

 Is there a 0.4-0.6 porting document somewhere that covers this already?

the API churning wasn't that big to require a porting document: we
mostly added or removed functionality, and what was possible before it's
still possible without using the new functionality.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] [ANNOUNCE] PyClutter 0.6.0 released

2008-02-19 Thread Emmanuele Bassi
hi everyone;

PyClutter 0.6.0 is now available for download at:

  http://www.clutter-project.org/sources/pyclutter/0.6/

MD5 checksums:
  866fa67e541c6ca7261efbc21a672f5f  pyclutter-0.6.0.tar.gz
  7d8272a0e773996732e2ad72f29cadfe  pyclutter-0.6.0.tar.bz2

this is the first release of the stable 0.6 cycle.

Clutter is an open source software library for creating fast, visually
rich and animated graphical user interfaces. Clutter is licensed under
the terms of the GNU Lesser General Public License version 2.1.

PyClutter is a module providing Python bindings for Clutter.

PyClutter currently requires:

  * GLib 2.14.0 or higher
  * GTK+ 2.10.0 or higher
  * Clutter 0.5.6 or higher
  * PyGObject 2.12.1 or higher
  * Python 2.3.5 or higher

Optionally, PyClutter depends on:

  * clutter-gst 0.6.1 or higher
  * clutter-gtk 0.6.0 or higher
  * clutter-cairo 0.6.0 or higher

The official website is: http://www.clutter-project.org
The Clutter blog is at:  http://www.clutter-project.org/blog
To subscribe to the Clutter mailing list, send mail to: [EMAIL PROTECTED] 
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference is at: http://www.clutter-project.org/docs/pyclutter/stable/

* Notes

   o Bugs should be reported to http://bugzilla.o-hand.com

   o Documentation is still not fully covering the whole clutter
 module, and it's not covering any sub-module. If you are
 interested in contributing to PyClutter you can start by
 adopting a class and documenting it using the docbook
 templates already present.

* List of changes between 0.5.2 and 0.6.0

   o Require clutter-core = 0.6.0
   o Require 0.6 releases of the whole clutter suite
   o Add optional Tidy bindings (not enabled by default)
   o Resync with upstream changes
   o Add deprecation warnings
   o Fix bug #797 - Memory leak with pyclutter [Tero Saarni]

have fun with PyClutter!

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Re: [ANNOUNCE] PyClutter 0.6.0 released

2008-02-19 Thread Emmanuele Bassi

On Tue, 2008-02-19 at 14:54 +, Colin Guthrie wrote:
 Emmanuele Bassi wrote:
  hi everyone;
  
  PyClutter 0.6.0 is now available for download at:
 
 Excellent. Are the Perl bindings coming or are they dead?

they are coming as well: need to update a couple of things, and will
probably push them today/tomorrow at worst.

 PS No need to CC as will read the list ;)

yeah, I understand the pain. ;-)

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] [ANNOUNCE] Clutter-Perl 0.6.0.0 released

2008-02-19 Thread Emmanuele Bassi

On Tue, 2008-02-19 at 16:31 +, Emmanuele Bassi wrote:
 hi everyone;
 
 Clutter-Perl 0.6.0.0 is now available for download at:
 
   http://www.clutter-project.org/sources/clutter-perl/0.6/
 
 MD5 checksums:
   3df071da1c44854c51fbc34b8889178a  clutter-perl-0.6.0.0.tar.gz
   488a6d262268964a4caa28a9f7d5f1ec  clutter-perl-0.6.0.0.tar.bz2

actually, the MD5 checksums are:
  4dfd944c89ee026e6399dae757333a82  clutter-perl-0.6.0.0.tar.gz
  1ef9743a9259619ebca2b35ee11adf43  clutter-perl-0.6.0.0.tar.bz2

sorry for the inconvenience.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] Clutter core branched

2008-02-19 Thread Emmanuele Bassi
hi all;

with the release of Clutter 0.6, Clutter core trunk is now dedicated to
the 0.7 development cycle.

the stable cycle bug fixing will continue in the branches/clutter-0-6
branch.

clutter-gst, clutter-gtk, clutter-cairo and the bindings trunk depend on
clutter-0.6 until branching notice.

please, update your checkout scripts.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



[clutter] [ANNOUNCE] Clutter 0.6.0 (core)

2008-02-18 Thread Emmanuele Bassi
hi everyone;

Clutter 0.6.0 is now available for download at:

  http://www.clutter-project.org/sources/0.6/

 1. MD5 Checksums:
  91caa82277a87b8be43bb0b9fdcbabb3  clutter-0.6.0.tar.gz
  15cc530f1aa1003a6c8d398ce799f8d0  clutter-0.6.0.tar.bz2

Clutter is an open source software library for creating fast, visually
rich and animated graphical user interfaces. Clutter is licensed under
the terms of the GNU Lesser General Public License version 2.1.

Clutter currently requires:

  * GLib = 2.14.0
  * GdkPixbuf
  * Pango 1.x
  * OpenGL = 1.2 or OpenGL ES 1.1
  * GLX, SDL (Unix and Win32), Cocoa or an EGL Implementation

The official website is: http://www.clutter-project.org
The Clutter blog is at:  http://www.clutter-project.org/blog
To subscribe to the Clutter mailing list, send mail to: [EMAIL PROTECTED] 
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference: http://www.clutter-project.org/docs/clutter/0.6/

* Notes

   o This version is API and ABI incompatible with previous stable
 release of Clutter, 0.4.2.

   o This version is parallel installable with Clutter 0.4. Installing
 this version will overwrite the files from a SVN checkout of the
 current stable branch (clutter-0-6).

   o Bugs should be reported to: http://bugzilla.o-hand.com

What's new in Clutter 0.6.0
---

New event handling system
Every actor with the CLUTTER_ACTOR_REACTIVE flag set will be able
to receive events. The event propagation chain will be walked in
two directions (from the top-level to the actor and back), with the
ability to stop the propagation in any handler. With the new event
handling it is also possible to acquire explicit grabs and to set
the key focus on every actor.

Abstraction over GL shaders
It is possible to override the OpenGL programmable drawing pipeline
by using the ClutterShader object and attaching it to a
ClutterActor. Support for this feature depends on the graphics
hardware.

Interface definition
ClutterScript can generate user interfaces from a JSON dialect.
Every object known to the GObject type system can be constructed
by using its type name and by setting its properties. It is also
possible to override the parsing mechanism and handle custom
properties for complex types.

Timelines API
The ClutterScore class has been added to help managing multiple
timelines. A ClutterScore can start multiple timelines at the
same time or in series. Timelines duration can now be set using
a time interval (in milliseconds); it is also possible to define
the direction (forward and backward).

New backends
The OSX backend has been added and it's marked as experimental.
The SDL backend is now buildable under MingW and under Visual
Studio 2005

High-precision units API
Every API dealing with positioning and sizing has a variant,
marked with the '-u' suffix, which accepts ClutterUnits, to
allow sub-pixel positioning. A set of conversion macros can be
used to transform pixels, font sizes, millimeters and percentages
of a parent actor into ClutterUnits.

Anchor point
Each actor has the ability to change its anchor point from the
top left corner to any point expressed in coordinates relative
to the actor itself. The anchor point is used as the origin
when positioning, scaling and rotating an actor.

Generic List model
ClutterModel is a generic model API which can be used to implement
an actor with the Model-Viewer-Controller design pattern. Clutter
provides a list implementation, called ClutterListModel.

Initial FBOs support
Clutter supports Frame Buffer Objects in ClutterTexture, where
the drivers and the hardware support them. Using FBOs it is possible
to create a ClutterTexture from any actor.

For more details about features and bug fixes, see the announcements for
the 0.5.x development cycle:

  http://lists.o-hand.com/clutter/0622.html
  http://lists.o-hand.com/clutter/0640.html
  http://lists.o-hand.com/clutter/0761.html

* List of changes between 0.5.6 and 0.6.0

  o New documentation sections inside the API reference, describing
the animation framework.

  o New API in ClutterActor for computing the actor's vertices in
the plane of a given ancestor and accessors to query whether an
actor is scaled or rotated

* List of bug fixed between 0.5.6 and 0.6.0

  o #613 - Extend point transformation API
  o #779 - Rounding error in ClutterBehaviourScale [Havoc Pennington]
  o #787 - tiled textures are broken
  o #796 - segmentation fault when setting label text

Thanks to everybody who has contributed to Clutter 0.5/0.6:

  Tommi Komulainen, Josh Stewart, Gwenole Beauchesne,
  Havoc Pennington, Jaap A. Haitsma, Johan Bilien,
  Neil Roberts, Murray Cumming

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

Re: [clutter] Memory leak with pyclutter

2008-02-15 Thread Emmanuele Bassi

On Sat, 2008-02-16 at 01:17 +0200, Tero Saarni wrote:
 I got some free time to get back to this problem and I think I found
 couple places that look like they miss updating reference counts.
 There still seems to be some leaks left but the biggest problems seem
 to be gone, at least according to my current test case.

yey, thanks for looking into this.

 Here's my current patch for the trunk.  I submitted this as bug #797
 but I post it here too in hope somebody else could test it too

I've just committed it to trunk.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] Problem destroying texture

2008-02-10 Thread Emmanuele Bassi

On Sun, 2008-02-10 at 15:03 +, Emmanuele Bassi wrote:

  Besides, if I wanted to have more than one of my explosions could I not 
  use g_new0?

 unless you want to allocate an array of items, but in that case using
 g_new0 will not do what you think it does.

it also depends on whether you want to use different images, in which
case you should probably keep the texture actor load the image and then
set the pixbuf of the texture, and hide the texture when you don't need
it (the texture will be removed from video memory and will stay in main
memory). or, if you plan on reusing the same image, it's fairly
convenient to keep the texture and hide/show it on demand - again, the
image will be moved in main memory and will not occupy video memory.

these two options are usually faster than just destroying/recreating the
texture actor, because you don't need to load the file from disk all the
time.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



Re: [clutter] [PATCH] More documentation of clutter.Actor

2008-02-10 Thread Emmanuele Bassi

On Sat, 2008-02-09 at 21:20 +0100, Daniel Schierbeck wrote:

thanks, applied.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



RE: [clutter] Memory leak with pyclutter

2008-02-07 Thread Emmanuele Bassi

On Thu, 2008-02-07 at 14:53 -0500, Kashyap Ashwin wrote:
 I made python print the #refs for alpha and that seems to be increasing
 for no reason. My guess is that it was not decremented after sine_func
 completed. I don't know much about clutter...

the alpha functions never increment the reference count of the alpha
object; the alpha object does not take a reference on the behaviour:
it's the other way around, so there's no reference cycle:

  behaviour
  +--- takes reference on ClutterAlpha
+ takes reference on ClutterTimeline

but the GObject side (and, implicitly, the Clutter side) of things is
cleared: there are no circular references to break, and the reference
count is correct.

 class AnimatedLabel():
 
 def __init__(self):
 print 'INIT %s' % self
 self.label = clutter.Label()
 self.timeline = clutter.Timeline(duration=1000)
 self.timeline.set_loop(True)
 self.alpha = clutter.Alpha(self.timeline, clutter.ramp_func)
 self.behaviour = clutter.BehaviourDepth(alpha=None,
 depth_start=0, depth_end=200)
 self.behaviour.apply(self.label)
 self.timeline.start()
 
 def __del__(self):
 print '#alph:', sys.getrefcount(self.alpha)
 print '#beh:', sys.getrefcount(self.behaviour)
 print '#tim:', sys.getrefcount(self.timeline)
 del self.alpha
 del self.behaviour
 print 'DEL %s' % self
 
 
 Output:
 INIT __main__.AnimatedLabel instance at 0xb65cee4c
 #alph: 481

eeek.

each python wrapper around alpha functions from the clutter module is
nothing more than a glorified function call:

py_alpha = PyTuple_GetItem (args, 0);
if (py_alpha 
pygobject_check (py_alpha, PyClutterAlpha_Type))
  {
alpha = CLUTTER_ALPHA (pygobject_get (py_alpha));
return PyInt_FromLong (clutter_ramp_func (alpha, NULL));
  }

pygobject_get() does not increase the reference count (last time I
checked), and this is confirmed by the GObject reference count;
PyTuple_GetItem() is defined as:

  PyObject* PyTuple_GetItem(
PyObject *p, Py_ssize_t pos)
  Return value: Borrowed reference.

so it shouldn't increase the python object reference count either. 

 #alph: 2511

again: eeek.

 #beh: 2
 #tim: 2
 
 
 Obviously alpha is never freed! BTW if you look at alpha.__grefcount__,
 that seems to be sane (and it does not agree with python ref count only
 for alpha).

this is all very dodgy.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com

-- 
To unsubscribe send a mail to [EMAIL PROTECTED]



<    1   2   3   4   >