OK, I decided to devote a little time to see if I could make any headway with BridgeSupport. It doesn't seem too terribly complicated, but I have run into a problem.

My framework is called ZenGL, so I first created a struct in ZenGL.h based on NSPoint:
typedef struct _ZPoint {
        float x;
        float y;
} ZPoint;

I also created a ZPointMake function:
ZPoint ZPointMake(float x, float y);

Then, I rebuilt the framework. Fine so far.

Next, I created an XML ZenGL.bridgesupport file using Foundation.xml (in /Library/BridgeSupport/) as an example. Here are the contents:
<?xml version='1.0'?>
<!DOCTYPE signatures SYSTEM "file://localhost/System/Library/DTDs/BridgeSupport.dtd ">
<signatures version='0.9'>
<struct name='ZPoint' encoding='{_ZPoint=&quot;x&quot;f&quot;y&quot;f}' type='{_ZPoint=&quot;x&quot;f&quot;y&quot;f}'/>
        <function name='ZPointMake'>
        <function_arg type='f'/>
        <function_arg type='f'/>
        <function_retval type='{_ZPoint=&quot;x&quot;f&quot;y&quot;f}'/>
        </function>
</signatures>
I placed ZenGL.bridgesupport in the folder with my built MacRuby app and added this code to load it:
load_bridge_support_file './ZenGL.bridgesupport'

(Going back to my xml, I originally did not include a 'type' attribute for the struct since the NSPoint example in Foundation.xml did not have one, but I received an error when running the load_... command. Not sure why.)

All seems well, but when I try this code from MacRuby:
zp = ZPointMake(10.0, 10.0)
I get this error:
`ZPointMake': wrong number of arguments (2 for 0) (ArgumentError)

My ZPointMake function definition in the xml sure looks right to me, based on the examples in Foundation.xml, so what have I done wrong?

Jim
_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to