Problème avec openGl
Fermé
Mourad2009B
Messages postés
118
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
5 février 2025
-
10 oct. 2015 à 22:42
Mourad2009B Messages postés 118 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 5 février 2025 - 13 oct. 2015 à 16:28
Mourad2009B Messages postés 118 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 5 février 2025 - 13 oct. 2015 à 16:28
1 réponse
Mourad2009B
Messages postés
118
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
5 février 2025
13 oct. 2015 à 14:30
13 oct. 2015 à 14:30
Bonjour à tous, j'ai dû changer mon code
voici les fichiers changés
fichier MainWindow.h
fichier MainWindow.cpp
fichier QopenGLWidget.h
dans ma fenêtre MainWindow j'ai rajouté une fenêtre openglWidget que j'ai promue à ma classe OpenGlWidget
et là la fenêtre s'affiche et même que j'arrive à changer la couleur de fond avec
mais pour dessiner avec
merci d'avance pour votre aide
voici les fichiers changés
fichier MainWindow.h
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
fichier MainWindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
fichier QopenGLWidget.h
#ifndef OPENGLWIDGET_H
#define OPENGLWIDGET_H
#include <QObject>
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
class OpenGlWidget : public QOpenGLWidget
{
public:
OpenGlWidget(QWidget *parent = 0);
void initializeGL();
void paintGL();
void resizeGL(int w, int h);
};
#endif // OPENGLWIDGET_H
fichier QopenGLWidget.cpp
#include "openglwidget.h"
OpenGlWidget::OpenGlWidget(QWidget *parent) : QOpenGLWidget(parent)
{
}
void OpenGlWidget::initializeGL()
{
GLfloat vertices[] = {
0.0f, 0.707f,
-0.5f, -0.5f,
0.5f, -0.5f,
0.5f, -1.0f
};
GLfloat colors[] = {
1.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 1.0f,
0.0f, 1.0f, 0.0f,
};
GLubyte indices[] = { 0, 1, 2, 2, 3, 0, // front
4, 5, 6, 6, 7, 4, // right
8, 9,10, 10,11, 8, // top
12,13,14, 14,15,12, // left
16,17,18, 18,19,16, // bottom
20,21,22, 22,23,20 }; // back
QOpenGLFunctions *glFuncs = QOpenGLContext::currentContext()->functions();
glFuncs->glActiveTexture(GL_TEXTURE1);
glFuncs->glDrawElements(GL_TRIANGLES, 1, GL_UNSIGNED_SHORT, indices);
glFuncs->glClearColor(0.0, 0.0, 0.5, 1.0);
glFuncs->glVertexAttribPointer(10, 2, GL_FLOAT, GL_FALSE, 0, vertices);
glFuncs->glVertexAttribPointer(10, 3, GL_FLOAT, GL_FALSE, 0, colors);
glFuncs->glEnableVertexAttribArray(0);
glFuncs->glEnableVertexAttribArray(1);
glFuncs->glEnableVertexAttribArray(2);
glFuncs->glClearDepthf(1.0);
glFuncs->glDrawElements(GL_LINE, 4, GL_UNSIGNED_INT, indices);
//glFuncs->glDrawArrays(GL_TRIANGLES, 0, 2);
}
void OpenGlWidget::paintGL()
{
}
void OpenGlWidget::resizeGL(int w, int h)
{
}
dans ma fenêtre MainWindow j'ai rajouté une fenêtre openglWidget que j'ai promue à ma classe OpenGlWidget
et là la fenêtre s'affiche et même que j'arrive à changer la couleur de fond avec
glFuncs->glClearColor(0.0, 0.0, 0.5, 1.0);
mais pour dessiner avec
glFuncs->glDrawElements(GL_LINE, 4, GL_UNSIGNED_INT, indices);il n' y a rien qui s'affiche, par contre il n' y a aucune erreur de compilation
merci d'avance pour votre aide
13 oct. 2015 à 16:28