Fixed basic problem with QGLFormat that was causing a crash; still re-building the application step by step

This commit is contained in:
Alexandre Quessy
2014-06-23 12:54:58 -04:00
parent f08f25c7cb
commit 0f40608562
2 changed files with 29 additions and 26 deletions
+22 -23
View File
@@ -827,13 +827,12 @@ void MainWindow::createLayout()
propertyPanel->setMinimumWidth(PROPERTY_PANEL_MINIMUM_WIDTH);
// Create canvases.
sourceCanvas = new SourceGLCanvas(this);
//sourceCanvas->setFocusPolicy(Qt::ClickFocus);
//sourceCanvas->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
//sourceCanvas->setMinimumSize(CANVAS_MINIMUM_WIDTH, CANVAS_MINIMUM_HEIGHT);
// sourceCanvas = new SourceGLCanvas(this);
// sourceCanvas->setFocusPolicy(Qt::ClickFocus);
// sourceCanvas->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
// sourceCanvas->setMinimumSize(CANVAS_MINIMUM_WIDTH, CANVAS_MINIMUM_HEIGHT);
//
// destinationCanvas = new DestinationGLCanvas(this, 0, sourceCanvas);
destinationCanvas = new DestinationGLCanvas(this, 0, sourceCanvas);
// destinationCanvas->setFocusPolicy(Qt::ClickFocus);
// destinationCanvas->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
// destinationCanvas->setMinimumSize(CANVAS_MINIMUM_WIDTH, CANVAS_MINIMUM_HEIGHT);
@@ -864,29 +863,29 @@ void MainWindow::createLayout()
resourceSplitter->addWidget(mappingList);
resourceSplitter->addWidget(propertyPanel);
// canvasSplitter = new QSplitter(Qt::Horizontal);
// canvasSplitter->addWidget(sourceCanvas);
// canvasSplitter->addWidget(destinationCanvas);
//
// mainSplitter = new QSplitter(Qt::Vertical);
// mainSplitter->addWidget(canvasSplitter);
// mainSplitter->addWidget(resourceSplitter);
//
// // Initialize size to 2:1 proportions.
// QSize sz = mainSplitter->size();
// QList<int> sizes;
// sizes.append(sz.height() * 2 / 3);
// sizes.append(sz.height() - sizes.at(0));
// mainSplitter->setSizes(sizes);
//
canvasSplitter = new QSplitter(Qt::Horizontal);
canvasSplitter->addWidget(sourceCanvas);
canvasSplitter->addWidget(destinationCanvas);
mainSplitter = new QSplitter(Qt::Vertical);
mainSplitter->addWidget(canvasSplitter);
mainSplitter->addWidget(resourceSplitter);
// Initialize size to 2:1 proportions.
QSize sz = mainSplitter->size();
QList<int> sizes;
sizes.append(sz.height() * 2 / 3);
sizes.append(sz.height() - sizes.at(0));
mainSplitter->setSizes(sizes);
// Upon resizing window, give some extra stretch expansion to canvasSplitter.
//mainSplitter->setStretchFactor(0, 1);
// Final setups.
setWindowTitle(tr("MapMap"));
resize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
setCentralWidget(resourceSplitter);
//setCentralWidget(mainSplitter);
//setCentralWidget(sourceCanvas);
setCentralWidget(mainSplitter);
// Connect mapping and paint lists signals and slots.
//connectProjectWidgets();
+7 -3
View File
@@ -23,22 +23,23 @@
#include "MainWindow.h"
MapperGLCanvas::MapperGLCanvas(MainWindow* mainWindow, QWidget* parent, const QGLWidget * shareWidget)
: QGLWidget(parent, shareWidget), _mainWindow(mainWindow), _mousepressed(false), _activeVertex(NO_VERTEX), _displayControls(true)
: QGLWidget(QGLFormat(QGL::SampleBuffers), parent, shareWidget), _mainWindow(mainWindow), _mousepressed(false), _activeVertex(NO_VERTEX), _displayControls(true)
{
}
void MapperGLCanvas::initializeGL()
{
qDebug() << "initializeGL" << endl;
// Clear to black.
qglClearColor(Qt::black);
// Antialiasing options.
QGLWidget::setFormat(QGLFormat(QGL::SampleBuffers));
//QGLWidget::setFormat(QGLFormat(QGL::SampleBuffers));
}
void MapperGLCanvas::resizeGL(int width, int height)
{
//qDebug() << "Resize to " << width << "x" << height << endl;
qDebug() << "Resize to " << width << "x" << height << endl;
glViewport(0, 0, width, height);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
@@ -47,6 +48,7 @@ void MapperGLCanvas::resizeGL(int width, int height)
(GLfloat) height, 0.0f, // bottom, top
-1.0, 1.0f);
glMatrixMode (GL_MODELVIEW);
qDebug() << "done resizing" << endl;
}
void MapperGLCanvas::paintGL()
@@ -55,9 +57,11 @@ void MapperGLCanvas::paintGL()
void MapperGLCanvas::draw(QPainter* painter)
{
qDebug() << "draw mappergl" << endl;
enterDraw(painter);
doDraw(painter);
exitDraw(painter);
qDebug() << "done." << endl;
}
void MapperGLCanvas::enterDraw(QPainter* painter)