[PyQt] Subclass QQuickFramebufferObject::Renderer and QOpenGLFunctions?

Elvis Stansvik elvstone at gmail.com
Sun Nov 11 12:40:25 GMT 2018


Hi all,

How can I subclass both QQuickFramebufferObject::Renderer and
QOpenGLFunctions, as done by the ColorRenderer in the
tst_qquickframebufferobject.cpp autotest in Qt:

    https://code.woboq.org/qt5/qtdeclarative/tests/auto/quick/qquickframebufferobject/tst_qquickframebufferobject.cpp.html

Snipped from above:

class ColorRenderer : public QQuickFramebufferObject::Renderer,
protected QOpenGLFunctions
{
public:
    void render();
    void synchronize(QQuickFramebufferObject *item);
    QOpenGLFramebufferObject *createFramebufferObject(const QSize &size);

    QSize textureSize;
    QColor color;
    bool msaa;
};

I tried to do something like this using the _QOpenGLFunctions_4_1_Core
class from PyQt, but ran into problems since the metaclass of
_QOpenGLFunctions_4_1_Core is module, and the meta class of
QQuickFramebufferObject::Renderer is sip.wrappertype, and there's no
way to declare a metatype inheriting them both that could be used,
since they are incompatible at the C level.

Is it simply not possible to create a
QQuickFramebufferObject::Renderer like this using PyQt?

Anyone know of another way to create a custom QQuickFramebufferObject from PyQt?

Cheers,
Elvis


More information about the PyQt mailing list