Russian Qt Forum

Qt => Вопросы новичков => Тема начата: qimby от Март 30, 2013, 13:34



Название: Opengl
Отправлено: qimby от Март 30, 2013, 13:34
Здравствуйте. Решил изучить opengl с Qt, но возникли трудности решение которых не смог найти.
написал примитивный код для класса GLWidget
Код:
#ifndef GLWIDGET_H
#define GLWIDGET_H

#include <QtOpenGL>
#include <GL/GL.H>

class GLWidget : public QGLWidget
{
public:
    GLWidget(QWidget *parent = 0);

protected:
    void initializeGL();
    void resizeGL(int nWidth, int nHeight);
    void paintGL();

};

#endif // WIDGET_H

Код:
#include "glwidget.h"

GLWidget::GLWidget(QWidget *parent)
    : QGLWidget(parent)
{
}


void GLWidget::initializeGL()
{
    glClearColor(1,0,1,1);
}

void GLWidget::resizeGL(int nWidth, int nHeight){


}

void GLWidget::paintGL()
{
    glClear(GL_COLOR_BUFFER_BIT);
}

он работает отлично, но если я в paintGL() припишу
Код:
glBegin(GL_POINTS);
glEnd();

выдаётся ошибка "was not declared in this scope", прописываю #include <GL/GL.h> , появляются 2 ошибки
C:\Qt\Qt5.0.1\5.0.1\mingw47_32\include\GL\gl.h:55: ошибка: conflicting declaration 'typedef double GLdouble'
C:\Qt\Qt5.0.1\5.0.1\mingw47_32\include\QtGui\qopengl.h:71: ошибка: 'GLdouble' has a previous declaration as 'typedef GLfloat GLdouble'

Прошу помочь. Спасибо


Название: Re: Opengl
Отправлено: qimby от Март 30, 2013, 19:14
в этом видеоуроке http://www.youtube.com/watch?v=1nzHSkY4K18
добавляется только <QGLWidget>  и он спокойно использует glBegin, glVertex, glEnd.
в .pro я добавил opengl


Название: Re: Opengl
Отправлено: qimby от Март 31, 2013, 00:29
убрал строку "typedef double GLdouble;" в gl.h и ошибка не появлялась, но на glBegin всё равно ругался, добавил в pro
"LIBS += -lopengl32" и ошибок теперь вообще нет, но только теперь всегда чёрный экран, glClear цыет фона не меняет и glVertex ничего не рисует.


Название: Re: Opengl
Отправлено: alex312 от Март 31, 2013, 09:41
В Qt5  по умолчанию используется версия EGL2.0 .
А всякие glBegin() из первой версии.
Поэтому не смотри всякие обучалки для Qt4, а бери примеры из Qt5 и изучай по ним.


Название: Re: Opengl
Отправлено: qimby от Март 31, 2013, 13:33
да, действительно! собрал дополнительно 4-ую версию и всё заработало в ней. Спасибо.