[Solved]OpenGL clarification.
-
I m trying to build the following simple example (A white rectangle on a black background) But I m not able to see the same.
@#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QPushButton>
#include <QGridLayout>
#include <QtOpenGL>
#include <QDialog>class OGLPort : public QGLWidget
{
Q_OBJECTpublic:
OGLPort(QWidget *parent = 0);
void paintEvent(QPaintEvent *);
void draw();
private:
QPushButton *button;
QGLFramebufferObject *render_fbo;
QGLFramebufferObject *texture_fbo;
};#endif // MAINWINDOW_H
@@#include "mainwindow.h"
OGLPort::OGLPort(QWidget *parent) :
QGLWidget(parent)
{
setWindowTitle("My OpenGL Trial");
}void OGLPort::paintEvent(QPaintEvent *)
{
QPainter p(this);
p.setPen(QColor(197, 197, 197, 157));
p.setBrush(QColor(197, 197, 197, 127));
p.drawRect(QRect(0, 0, width(), 50));
p.setPen(Qt::blue);
p.setBrush(Qt::NoBrush);
const QString str1(tr("This is painted"));
const QString str2(tr("This is also painted"));
QFontMetrics fm(p.font());
p.drawText(width()/2 - fm.width(str1)/2, 20, str1);
p.drawText(width()/2 - fm.width(str2)/2, 20 + fm.lineSpacing(), str2);
draw();
}void OGLPort::draw()
{
glClearColor (0.0, 0.0, 0.0, 0.0);
//glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0.0, 0.0, 0.0);
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
glViewport(0, 0, width(), height());
glBegin(GL_POLYGON);
glVertex3f (0.25, 0.25, 0.0);
glVertex3f (0.75, 0.25, 0.0);
glVertex3f (0.75, 0.75, 0.0);
glVertex3f (0.25, 0.75, 0.0);
glEnd();
glFlush();
}
@@#include <QtOpenGL/qgl.h>
#include <QtCore/qvector.h>
#include <QtGui/qmatrix4x4.h>
#include <QtGui/qvector3d.h>
#include <QtGui/qvector2d.h>
#include <QApplication>#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
OGLPort w;
w.show();return a.exec();
}
@Please help.
-
Thankyou. I got it right.