Re: [clutter] pyclutter: Texture from pixbuf
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?
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
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
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?
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?
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
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
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
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
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
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
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
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?
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
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
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)
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
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
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
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 ?
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
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
[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
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
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
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
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
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
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]
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
(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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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
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
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
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
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
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
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)
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
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
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
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
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]