[clutter] clutter_actor_animate: assertion `duration 0' failed

2010-06-23 Thread Daniel Hughes
I am playing around with clutter and am using if from c#.

Because the c# bindings are in a poor state I am having to create my
own bindings as I go.

clutter_actor_animate is a hard call to interop because it has a
variable number of arguments (something not supported in c#).

However I have something which I think will work, (based on the
example code I have seen).

But when I try to use it I am getting the following assertion.

[clutter] clutter_actor_animate: assertion `duration  0' failed

I have debugged it and checked that I am passing a value for duration
which is valid ( greater then zero).

This is now the only thing from the tuxradar tutorial which I havn't got going.
http://www.tuxradar.com/content/clutter-beginners-tutorial

So before I spend a lot of time trying to debug the interop I wanted
to check that their was not a known issue with the
clutter_actor_animate function.

I'm using the version of clutter in ubuntu 10.04.
-- 
To unsubscribe send a mail to clutter+unsubscr...@o-hand.com



Re: [clutter] clutter_actor_animate: assertion `duration 0' failed

2010-06-23 Thread Daniel Hughes
Thank neil for the pointer I tried the suggested function but I get
exactly the same Assertion.

 Clutter-CRITICAL **: clutter_actor_animatev: assertion `duration  0' failed

(we except for the v)

here is my code:

public Animation Animate(ClutterAnimationMode mode, uint 
duration,
 string property1, float val1,
 string property2, float val2,
 string property3, float val3)
{
var values = new float[]{val1,val2,val3};
IntPtr pointer =
GCHandle.Alloc(values,GCHandleType.Pinned).AddrOfPinnedObject();
Console.WriteLine(duration);
IntPtr nativeAnimation =
clutter_actor_animatev(_clutterActorNative, (ulong)mode, duration, 3,
new
string[]{property1, property2, property3},

pointer);
return new Animation( nativeAnimation );
}

[DllImport (libclutter-glx-1.0.so.0)]
private static extern IntPtr clutter_actor_animatev(IntPtr
actor,ulong mode, uint duration,int n_properties,

string[] properties,

IntPtr values);



On Wed, Jun 23, 2010 at 10:11 PM, Neil Roberts n...@linux.intel.com wrote:

 Daniel Hughes tramps...@gmail.com wrote:

 I am playing around with clutter and am using if from c#.

 Because the c# bindings are in a poor state I am having to create my
 own bindings as I go.

 clutter_actor_animate is a hard call to interop because it has a
 variable number of arguments (something not supported in c#).

 Are you literally binding the clutter_actor_animate function? That's not
 recommended. I think the idea is that bindings would bind the
 clutter_actor_animatev function instead which does not take a variable
 number of arguments. clutter_actor_animate is intended as the C
 'binding' for clutter_actor_animatev which just provides a convenient
 interface. Other languages are expected to bind clutter_actor_animatev
 separately using whatever method makes sense. For example, the Ruby
 bindings take a hash as the last argument which it then converts into
 two separate arrays (one for the property names and one for the values)
 to pass to clutter_actor_animatev. Calling it from Ruby then looks like
 this:

  some_actor.animate(Clutter::LINEAR, 1000,
                    x = 100,
                    y = 100)

 Maybe if C# supports array literals or hash literals it could do
 something similar.

 However I have something which I think will work, (based on the
 example code I have seen).

 But when I try to use it I am getting the following assertion.

 [clutter] clutter_actor_animate: assertion `duration  0' failed

 I have debugged it and checked that I am passing a value for duration
 which is valid ( greater then zero).

 So before I spend a lot of time trying to debug the interop I wanted
 to check that their was not a known issue with the
 clutter_actor_animate function.

 I don't think there are any known problems with the duration. You may
 want to try posting a code snippet of your binding and someone with
 knowledge of C# may be able to help.

 Regards,
 - Neil

--
To unsubscribe send a mail to clutter+unsubscr...@o-hand.com