Boost.Python と SFML を使用するプロジェクトがあります。私のオブジェクトの多くは SFML 型を公開していますが、ホイールを再現しないために、SFML の Python バインディングによってラップされた独自のバインディングからオブジェクトを返したいと考えています。たとえば、次のクラスがあります。
class MyThing
{
public:
sf::Image& image() { return _image; }
private:
sf::Image _image;
};
バインディングは次のようになります。
class_<MyThing>("MyThing")
.add_property("image", make_function(&MyThing::image, return_internal_reference<1>()))
;
もちろん、Boost.Python の変換レジストリが認識していないため(SFML の Python バインディングは Cython で行われます) 、実際にmything.image
Python からにアクセスしようとすると が生成されます。TypeError: No Python class registered for C++ class sf::Image
sf::Image
Boost.Python 変換レジストリに、sf::Image
型を SFML の Python バインディングの型でラップするように指示する方法はありますか?