вынести код рисования из QGLWidget::paint()
От: gencoder  
Дата: 28.12.16 10:16
Оценка:
Помогите вынести код рисования OpenGL-графики из метода paint() класса наследника QGLWidget во внешний функтор:

Собирается, запускается, но не рисуется:
class DrawerFunctor
{
    // QGLWidget * context_ {0};
    public:
        // DrawerFunctor( QGLWidget *context = 0 ):  context_(context) {}
        void operator()()
        {
            glBegin(GL_LINES);
                glVertex3f( 10.0f,  0.0f,  0.0f);
                glVertex3f( -10.0f,  0.0f,  0.0f);
            glEnd();
        }

};

class Scene : public QGLWidget {
Q_OBJECT
    DrawerFunctor *f;
public:
    Scene(QWidget *parent = 0){f = new DrawerFunctor(this);}
    ~Scene(){delete f;}
    void initializeGL(){/*...*/}
    void resizeGL(int w, int h){/*...*/}
    void paintGL() {/*...*/  (*f)(); }
};
Отредактировано 28.12.2016 11:30 gencoder . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.