From 0f40608562a09b9546b0f9575796407dd05f257a Mon Sep 17 00:00:00 2001 From: Alexandre Quessy Date: Mon, 23 Jun 2014 12:54:58 -0400 Subject: [PATCH] Fixed basic problem with QGLFormat that was causing a crash; still re-building the application step by step --- MainWindow.cpp | 45 ++++++++++++++++++++++----------------------- MapperGLCanvas.cpp | 10 +++++++--- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/MainWindow.cpp b/MainWindow.cpp index 7a94fa0..7084582 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -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 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 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(); diff --git a/MapperGLCanvas.cpp b/MapperGLCanvas.cpp index c51f409..863e063 100644 --- a/MapperGLCanvas.cpp +++ b/MapperGLCanvas.cpp @@ -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)