File glscene.h:
#ifndef GLSCENE_H #define GLSCENE_H #include <QOpenGLWidget> class GLScene : public QOpenGLWidget { public: GLScene(QWidget *parent = 0); ~GLScene(); void initializeGL(); void resizeGL(int w, int h); void paintGL(); }; #endif // GLSCENE_H File glscene.cpp:
#include "glscene.h" GLScene::GLScene(QWidget *parent): QOpenGLWidget(parent){} GLScene::~GLScene(){} void GLScene::initializeGL() { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠΊΡΠ°Π½ Π±Π΅Π»ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ glEnable(GL_DEPTH_TEST); // Π·Π°Π΄Π°Π΅ΠΌ Π³Π»ΡΠ±ΠΈΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ glShadeModel(GL_FLAT); // ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ΅ΠΆΠΈΠΌ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ² glEnable(GL_CULL_FACE); // Π³ΠΎΠ²ΠΎΡΠΈΠΌ, ΡΡΠΎ Π±ΡΠ΄Π΅ΠΌ ΡΡΡΠΎΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΠΈ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL); // ΡΠΈΠ³ΡΡΡ Π±ΡΠ΄ΡΡ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Ρ Ρ ΠΎΠ±Π΅ΠΈΡ
ΡΡΠΎΡΠΎΠ½ } void GLScene::resizeGL(int w, int h) { glViewport(0, 0, w, h); // ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΎΡΠΊΠΈ ΠΎΠ±Π·ΠΎΡΠ° glMatrixMode(GL_PROJECTION); // ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΠΆΠΈΠΌΠ° ΠΌΠ°ΡΡΠΈΡΡ glLoadIdentity(); // Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΌΠ°ΡΡΠΈΡΡ } void GLScene::paintGL() { glClear(GL_COLOR_BUFFER_BIT); // ΠΎΡΠΈΡΡΠΊΠ° ΡΠΊΡΠ°Π½Π° glMatrixMode(GL_MODELVIEW); // Π·Π°Π΄Π°Π΅ΠΌ ΠΌΠΎΠ΄Π΅Π»ΡΠ½ΠΎ-Π²ΠΈΠ΄ΠΎΠ²ΡΡ ΠΌΠ°ΡΡΠΈΡΡ glLoadIdentity(); // Π·Π°Π³ΡΡΠ·ΠΊΠ° Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ QColor halfGreen(0, 128, 0, 255); // ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° qglColor(halfGreen); // Π·Π°Π΄Π°Π΅ΠΌ ΡΠ²Π΅Ρ glBegin(GL_QUADS); // Π³ΠΎΠ²ΠΎΡΠΈΠΌ, ΡΡΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ // Π·Π°Π΄Π°Π΅ΠΌ Π²Π΅ΡΡΠΈΠ½Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° glVertex3f(0.5, 0.5, 0.5); glVertex3f(-0.5, 0.5, 0.5); glVertex3f(-0.5, -0.5, 0.5); glVertex3f(0.5, -0.5, 0.5); glEnd(); } Build Error:
%path%\glscene.cpp:40: ΠΎΡΠΈΠ±ΠΊΠ°: 'qglColor' was not declared in this scope qglColor(halfGreen); // Π·Π°Π΄Π°Π΅ΠΌ ΡΠ²Π΅Ρ ^ QT += opengl added to the pro-file. Connected #include <QGLWidget> , because documentation - did not help.
QOpenGLWidget? - Oleg FromQOpenGLWidget? - Oleg From