1

我有一个使用 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>()))
    ;

当然,实际上尝试mything.image从 Python 访问 yield TypeError: No Python class registered for C++ class sf::Image,因为 Boost.Python 的转换注册表不知道sf::Image(SFML 的 Python 绑定是用 Cython 完成的)。

有没有办法告诉 Boost.Python 转换注册表sf::Image用 SFML 的 Python 绑定中的类型包装类型?

4

0 回答 0