Reviving BulletD -- again
BLM768
blm768 at gmail.com
Mon May 27 23:11:43 PDT 2013
On Monday, 15 April 2013 at 05:26:27 UTC, BLM768 wrote:
>
> If I can automate the generation of bindings to a satisfactory
> degree, expanding the bindings should be a very simple process,
> so I could just write bindings for the core functionality and
> have others expand the bindings as needed. That way, the
> bindings only contain things that someone will actually use. I
> think that I'll represent the C++ classes as structs that hold
> the actual C++ objects as void arrays and contain stub methods
> that just forward to the C layer. If I can figure out a way to
> do it, I'd like to alias those stub methods directly to their C
> counterparts so I can handle cases where inlining won't kick in.
I've recently made some breakthroughs in the area of binding
generation, and the system has reached the point where I can
instantiate and use a simple C++ class (namely btTypedObject,
which is probably the simplest class in Bullet) from D using my
generated bindings. The system is rather interesting, but it's
also a bit messy, so explore the code at your own risk.
Here's a condensed version of the test code:
//bullet/linearMath/btScalar.d
//Support code omitted
struct btTypedObject {
mixin classBinding!"btTypedObject";
mixin constructor!(int);
mixin method!(int, "getObjectType");
}
//test.d
module main;
import std.stdio;
import bullet.linearMath.btScalar;
int main(string[] args) {
auto obj = btTypedObject(1);
writeln(obj.getObjectType());
return 0;
}
More information about the Digitalmars-d-announce
mailing list