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