
I'd suggest to first look at how other C++-bindings for haskell are
implemented. e.g. wxHaskell is the most mature Haskell C++ binding out
there. hogre tries to generate bindings from headers. And a number of
(rather minimal) bindings to some libs were made as part of Nikki and
the Robots.
On Thu, 17 Jan 2013 18:48:02 +0100 Nathan Hüsken
Hey,
I would like to write FII bindings in haskell for cocos2d-x (http://www.cocos2d-x.org/), which is a C++ library.
Since I have little experience with this, I would like some feedback before I discover that concept is bad half way.
In cocos2d there is a base class with much functionality: CCNode Many classes derive from it (i.E. CCLayer) and use the virtual functions of CCNode (i.E. setPosition).
How do I map this to haskell?
The general Idea:
I have a typeclass, in which everything that is derived from CCNode is an instance:
class NodeDerived a where toNode :: a -> Node
setPosition :: a -> (Double,Double) -> IO () setPosition a pos = setNodePosition (toNode a) pos
instane NodeDerived Layer where toNode = layerToNode
and layerToNode :: Layer -> Node would be implemented in C++ as:
CCNode* layerToNode(CCLayer* l) { return dynamic_cast
(l); } This way I would have only to implement toNode for every class derived from CCNode and get all the functions CCNode defines.
What do you think if this Idea? How would you do it?
Thanks! Nathan
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe