为QGraphicsItem创建着色器程序
|
我有一个QGraphicsScene,其中添加了QGraphicsItem。在QGraphicsItem中,我渲染了OpenGL ES 2.0的问候三角形示例中使用的三角形。问题是,如果我在除
QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
函数以外的任何地方创建和编译着色器,它们将不会被编译。我知道您应该启用GL渲染上下文,但是当我将视口设置为GLWidget时不会发生这种情况吗?我尝试了各种方法,例如在QGraphicsItem构造函数或QGraphicsScene中编译它们,并将QGraphicsItem设置为父级(我知道它们是非常愚蠢的事情),但是(显然)没有任何效果。在我看来,最合乎逻辑的方法是在QGraphicsItem类中创建一个initShaders()函数,并在场景中创建该项目后调用它,但这也行不通。
没有找到相关结果
已邀请:
1 个回复
呕蹿尉