Название: [Решено] Рисование на QGLWidget из другого класса Отправлено: __Heaven__ от Сентябрь 21, 2014, 16:39 Привет, друзья!
У меня имеется класс, наследованный от QGLWidget. Я в нём произвожу отрисовку нескольких объектов. У меня появилась необходимость разделить этот класс на двое - отрисовывать один из объектов с помощью нового класса. Мне изветно, что это нужно делать с помощью QGLContext. Я пробовал наследовать мой новый класс от QGLWidget. Но выходит не совсем корректное рисование и сегфолт при выходе. Каким образом будет правильно сделать необходимое мне разделение? Up так как контекст в программе единственный, было достаточно создать обычный класс, неунаследованный от кого-либо (правда, я унаследовался от QObject ради самодеструкции). Наличие <QOpenGLShaderProgram> позволило включить необходимые мне для рисования функции. Название: Re: [Решено] Рисование на QGLWidget из другого класса Отправлено: vulko от Сентябрь 24, 2014, 14:57 не совсем понятно описано...
я так понял, что нужно отрисовку вынести в отдельный класс. если так, то ничего не мешает создавать сколько угодно классов, описать в нем метод draw() и дергать их из paintGL() у QGLWidget'а. Название: Re: [Решено] Рисование на QGLWidget из другого класса Отправлено: __Heaven__ от Сентябрь 25, 2014, 07:45 не совсем понятно описано... я так понял, что нужно отрисовку вынести в отдельный класс. если так, то ничего не мешает создавать сколько угодно классов, описать в нем метод draw() и дергать их из paintGL() у QGLWidget'а. Да, именно так. Меня смутило наличие контекста, думал, что его нужно как-то дёргать из класса в класс. Название: Re: [Решено] Рисование на QGLWidget из другого класса Отправлено: vulko от Сентябрь 25, 2014, 13:45 не совсем понятно описано... я так понял, что нужно отрисовку вынести в отдельный класс. если так, то ничего не мешает создавать сколько угодно классов, описать в нем метод draw() и дергать их из paintGL() у QGLWidget'а. Да, именно так. Меня смутило наличие контекста, думал, что его нужно как-то дёргать из класса в класс. нет, дергать не нужно, по крайней мере для одного виджета с одним и тем же контекстом. а вот если отрисовка будет в разных потоках, то тут придется подергать makeCurrent() для контекстов/виджетов. |