Boost.Python: регистрация не-Boost.Python преобразователей

У меня есть проект, который использует 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?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]