Сообщение вынести код рисования из QGLWidget::paint() от 28.12.2016 10:16
Изменено 28.12.2016 11:30 gencoder
Помогите вынести код рисования 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)(); );
};
вынести код рисования из QGLWidget::paint()
Помогите вынести код рисования 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)(); }
};