У меня есть проект, который использует 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 дает TypeError: No Python class registered for C++ class sf::Image
, так как реестр преобразования Boost.Python не знает о sf::Image
(Связки Python SFML выполняются с помощью Cython).
Есть ли какой-нибудь способ указать реестру преобразования Boost.Python для переноса sf::Image
типы с теми из привязок Python SFML?
Задача ещё не решена.
Других решений пока нет …