diff --git a/Builds/QtCreator/Ember/Ember.pro b/Builds/QtCreator/Ember/Ember.pro
index edafbbe..695a2bf 100644
--- a/Builds/QtCreator/Ember/Ember.pro
+++ b/Builds/QtCreator/Ember/Ember.pro
@@ -6,7 +6,7 @@ CONFIG -= app_bundle
CONFIG -= qt
VERSION = 0.1.4.7
-DESTDIR = ../../../Bin
+DESTDIR = $$(HOME)/Dev/fractorium/Bin
LIBS += -L/usr/lib -ltbb
LIBS += -L/usr/lib/x86_64-linux-gnu -lxml2
@@ -16,7 +16,6 @@ INCLUDEPATH += /usr/include/tbb
INCLUDEPATH += /usr/include/libxml2
INCLUDEPATH += ../../../Source/Ember
-QMAKE_CXXFLAGS_RELEASE += -O2
QMAKE_CXXFLAGS_RELEASE += -DNDEBUG
QMAKE_CXXFLAGS += -march=k8
diff --git a/Builds/QtCreator/EmberAnimate/EmberAnimate.pro b/Builds/QtCreator/EmberAnimate/EmberAnimate.pro
index 8bf8569..206bdb8 100644
--- a/Builds/QtCreator/EmberAnimate/EmberAnimate.pro
+++ b/Builds/QtCreator/EmberAnimate/EmberAnimate.pro
@@ -6,15 +6,15 @@ CONFIG -= app_bundle
CONFIG -= qt
VERSION = 0.1.4.7
-DESTDIR = ../../../Bin
+DESTDIR = $$(HOME)/Dev/fractorium/Bin
LIBS += -L/usr/lib -lOpenCL
LIBS += -L/usr/lib -lGL
LIBS += -L/usr/lib -ljpeg
LIBS += -L/usr/lib -lpng
LIBS += -L/usr/lib/x86_64-linux-gnu -lxml2
-LIBS += -L../../../Bin -lEmber
-LIBS += -L../../../Bin -lEmberCL
+LIBS += -L$$DESTDIR -lEmber
+LIBS += -L$$DESTDIR -lEmberCL
INCLUDEPATH += /usr/include/CL
INCLUDEPATH += /usr/include/GL
diff --git a/Builds/QtCreator/EmberCL/EmberCL.pro b/Builds/QtCreator/EmberCL/EmberCL.pro
index 2c0e83d..1212aab 100644
--- a/Builds/QtCreator/EmberCL/EmberCL.pro
+++ b/Builds/QtCreator/EmberCL/EmberCL.pro
@@ -6,7 +6,7 @@ CONFIG -= app_bundle
CONFIG -= qt
VERSION = 0.1.4.7
-DESTDIR = ../../../Bin
+DESTDIR = $$(HOME)/Dev/fractorium/Bin
LIBS += -L/usr/lib -lOpenCL
LIBS += -L/usr/lib -lGL
@@ -18,7 +18,6 @@ INCLUDEPATH += /usr/include/tbb
INCLUDEPATH += /usr/include/libxml2
INCLUDEPATH += ../../../Source/Ember
-QMAKE_CXXFLAGS_RELEASE += -O2
QMAKE_CXXFLAGS_RELEASE += -DNDEBUG
QMAKE_CXXFLAGS += -march=k8
diff --git a/Builds/QtCreator/EmberGenome/EmberGenome.pro b/Builds/QtCreator/EmberGenome/EmberGenome.pro
index 9e085bf..7fddeb5 100644
--- a/Builds/QtCreator/EmberGenome/EmberGenome.pro
+++ b/Builds/QtCreator/EmberGenome/EmberGenome.pro
@@ -6,15 +6,15 @@ CONFIG -= app_bundle
CONFIG -= qt
VERSION = 0.1.4.7
-DESTDIR = ../../../Bin
+DESTDIR = $$(HOME)/Dev/fractorium/Bin
LIBS += -L/usr/lib -lOpenCL
LIBS += -L/usr/lib -lGL
LIBS += -L/usr/lib -ljpeg
LIBS += -L/usr/lib -lpng
LIBS += -L/usr/lib/x86_64-linux-gnu -lxml2
-LIBS += -L../../../Bin -lEmber
-LIBS += -L../../../Bin -lEmberCL
+LIBS += -L$$DESTDIR -lEmber
+LIBS += -L$$DESTDIR -lEmberCL
INCLUDEPATH += /usr/include/CL
INCLUDEPATH += /usr/include/GL
diff --git a/Builds/QtCreator/EmberRender/EmberRender.pro b/Builds/QtCreator/EmberRender/EmberRender.pro
index bad1123..cde41c2 100644
--- a/Builds/QtCreator/EmberRender/EmberRender.pro
+++ b/Builds/QtCreator/EmberRender/EmberRender.pro
@@ -6,15 +6,15 @@ CONFIG -= app_bundle
CONFIG -= qt
VERSION = 0.1.4.7
-DESTDIR = ../../../Bin
+DESTDIR = $$(HOME)/Dev/fractorium/Bin
LIBS += -L/usr/lib -lOpenCL
LIBS += -L/usr/lib -lGL
LIBS += -L/usr/lib -ljpeg
LIBS += -L/usr/lib -lpng
LIBS += -L/usr/lib/x86_64-linux-gnu -lxml2
-LIBS += -L../../../Bin -lEmber
-LIBS += -L../../../Bin -lEmberCL
+LIBS += -L$$DESTDIR -lEmber
+LIBS += -L$$DESTDIR -lEmberCL
INCLUDEPATH += /usr/include/CL
INCLUDEPATH += /usr/include/GL
diff --git a/Builds/QtCreator/Fractorium/Fractorium.pro b/Builds/QtCreator/Fractorium/Fractorium.pro
index 800e816..940a35d 100644
--- a/Builds/QtCreator/Fractorium/Fractorium.pro
+++ b/Builds/QtCreator/Fractorium/Fractorium.pro
@@ -13,7 +13,7 @@ TEMPLATE = app
CONFIG += precompile_header
VERSION = 0.1.4.7
-DESTDIR = ../../../Bin
+DESTDIR = $$(HOME)/Dev/fractorium/Bin
LIBS += -L/usr/lib -lOpenCL
LIBS += -L/usr/lib -lGL
@@ -21,8 +21,8 @@ LIBS += -L/usr/lib -ljpeg
LIBS += -L/usr/lib -lpng
LIBS += -L/usr/lib -ltbb
LIBS += -L/usr/lib/x86_64-linux-gnu -lxml2
-LIBS += -L../../../Bin -lEmber
-LIBS += -L../../../Bin -lEmberCL
+LIBS += -L$$DESTDIR -lEmber
+LIBS += -L$$DESTDIR -lEmberCL
INCLUDEPATH += /usr/include/CL
INCLUDEPATH += /usr/include/GL
diff --git a/Source/Ember/Timing.h b/Source/Ember/Timing.h
index e5bb341..ec829aa 100644
--- a/Source/Ember/Timing.h
+++ b/Source/Ember/Timing.h
@@ -193,8 +193,8 @@ private:
CriticalSection()
{
pthread_mutexattr_t attr;
-
- pthread_mutexattr_init(&attr);
+
+ pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL);
pthread_mutex_init(&m_CriticalSection, &attr);
pthread_mutexattr_destroy(&attr);
diff --git a/Source/Fractorium/AboutDialog.ui b/Source/Fractorium/AboutDialog.ui
index 8601547..acf1074 100644
--- a/Source/Fractorium/AboutDialog.ui
+++ b/Source/Fractorium/AboutDialog.ui
@@ -7,7 +7,7 @@
0
0
488
- 617
+ 565
@@ -19,13 +19,13 @@
488
- 617
+ 565
587
- 617
+ 565
@@ -77,6 +77,9 @@
4
+
+ 6
+
-
@@ -105,6 +108,9 @@
4
+
+ 6
+
-
@@ -133,6 +139,9 @@
4
+
+ 6
+
-
@@ -154,6 +163,12 @@
-
+
+ 6
+
+
+ 0
+
-
diff --git a/Source/Fractorium/Fractorium.cpp b/Source/Fractorium/Fractorium.cpp
index 4843c7f..f3df81c 100644
--- a/Source/Fractorium/Fractorium.cpp
+++ b/Source/Fractorium/Fractorium.cpp
@@ -119,6 +119,9 @@ Fractorium::Fractorium(QWidget* p)
m_ProgressBar->setMaximumWidth(progressBarWidth);
ui.statusBar->addPermanentWidget(m_ProgressBar);
+ //Setup pointer in the GL window to point back to here.
+ ui.GLDisplay->SetMainWindow(this);
+
showMaximized();
connect(ui.DockWidget, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)), this, SLOT(dockLocationChanged(Qt::DockWidgetArea)));
@@ -146,15 +149,11 @@ Fractorium::Fractorium(QWidget* p)
//setStyleSheet("QGroupBox { border: 2px solid gray; border-radius: 3px; } ");
m_PreviousPaletteRow = -1;//Force click handler the first time through.
-
- //Setup pointer in the GL window to point back to here.
- ui.GLDisplay->SetMainWindow(this);
- //ui.GLDisplay->setParent(this);
SetCoordinateStatus(0, 0, 0, 0);
SetTabOrders();
ui.GLParentScrollArea->installEventFilter(this);
-
+
//At this point, everything has been setup except the renderer. Shortly after
//this constructor exits, GLWidget::initializeGL() will create the initial flock and start the rendering timer
//which executes whenever the program is idle. Upon starting the timer, the renderer
@@ -263,7 +262,7 @@ bool Fractorium::eventFilter(QObject* o, QEvent* e)
{
m_WidthSpin->DoubleClickNonZero(ui.GLParentScrollArea->width());
m_HeightSpin->DoubleClickNonZero(ui.GLParentScrollArea->height());
- //qDebug() << "scroll area resized";
+ //qDebug() << "scroll area resized";
}
return QMainWindow::eventFilter(o, e);
diff --git a/Source/Fractorium/FractoriumPch.h b/Source/Fractorium/FractoriumPch.h
index 7ba43d2..5ca78b3 100644
--- a/Source/Fractorium/FractoriumPch.h
+++ b/Source/Fractorium/FractoriumPch.h
@@ -35,7 +35,7 @@
#include
#include
#include
-#include
+#include
#include
#include
#include
diff --git a/Source/Fractorium/FractoriumRender.cpp b/Source/Fractorium/FractoriumRender.cpp
index 64e24fd..5ed9c6c 100644
--- a/Source/Fractorium/FractoriumRender.cpp
+++ b/Source/Fractorium/FractoriumRender.cpp
@@ -434,10 +434,10 @@ bool FractoriumEmberController::Render()
{
if (m_FinalImage.size() == m_Renderer->FinalBufferSize())//Make absolutely sure the correct amount of data is passed.
gl->repaint();
- //gl->update();
+ //gl->update();
- //m_Fractorium->update();
- //m_Fractorium->ui.GLParentScrollArea->update();
+ //m_Fractorium->update();
+ //m_Fractorium->ui.GLParentScrollArea->update();
//Uncomment for debugging kernel build and execution errors.
//m_Fractorium->ui.InfoRenderingTextEdit->setText(QString::fromStdString(m_Fractorium->m_Wrapper.DumpInfo()));
//if (rendererCL)
diff --git a/Source/Fractorium/FractoriumXforms.cpp b/Source/Fractorium/FractoriumXforms.cpp
index cafd799..c6c7d5f 100644
--- a/Source/Fractorium/FractoriumXforms.cpp
+++ b/Source/Fractorium/FractoriumXforms.cpp
@@ -30,15 +30,15 @@ void Fractorium::InitXformsUI()
connect(ui.XformWeightNameTable, SIGNAL(cellChanged(int, int)), this, SLOT(OnXformNameChanged(int, int)), Qt::QueuedConnection);
ui.CurrentXformCombo->setProperty("soloxform", -1);
-
+
#ifndef WIN32
- //For some reason linux makes these 24x24, even though the designer explicitly says 16x16.
- ui.AddXformButton->setIconSize(QSize(16, 16));
- ui.DuplicateXformButton->setIconSize(QSize(16, 16));
- ui.ClearXformButton->setIconSize(QSize(16, 16));
- ui.DeleteXformButton->setIconSize(QSize(16, 16));
- ui.AddFinalXformButton->setIconSize(QSize(16, 16));
- ui.CurrentXformCombo->setIconSize(QSize(16, 16));
+ //For some reason linux makes these 24x24, even though the designer explicitly says 16x16.
+ ui.AddXformButton->setIconSize(QSize(16, 16));
+ ui.DuplicateXformButton->setIconSize(QSize(16, 16));
+ ui.ClearXformButton->setIconSize(QSize(16, 16));
+ ui.DeleteXformButton->setIconSize(QSize(16, 16));
+ ui.AddFinalXformButton->setIconSize(QSize(16, 16));
+ ui.CurrentXformCombo->setIconSize(QSize(16, 16));
#endif
}
diff --git a/Source/Fractorium/GLWidget.cpp b/Source/Fractorium/GLWidget.cpp
index a4e4859..ab053f4 100644
--- a/Source/Fractorium/GLWidget.cpp
+++ b/Source/Fractorium/GLWidget.cpp
@@ -10,9 +10,9 @@
///
/// The parent widget
GLWidget::GLWidget(QWidget* p)
- : QGLWidget(QGLFormat(QGL::SampleBuffers), p)
+ : QOpenGLWidget(p)
{
- QGLFormat qglFormat;
+ QSurfaceFormat qsf;
m_Init = false;
m_Drawing = false;
@@ -20,14 +20,12 @@ GLWidget::GLWidget(QWidget* p)
m_TexHeight = 0;
m_OutputTexID = 0;
m_Fractorium = NULL;
- qglFormat.setSwapInterval(1);//Vsync.
- qglFormat.setDoubleBuffer(true);
- qglFormat.setVersion(2, 0);
- //qglFormat.setVersion(3, 2);
- qglFormat.setProfile(QGLFormat::CompatibilityProfile);
- //qglFormat.setProfile(QGLFormat::CoreProfile);
-
- setFormat(qglFormat);
+
+ qsf.setSwapInterval(1);//Vsync.
+ qsf.setSwapBehavior(QSurfaceFormat::DoubleBuffer);
+ qsf.setVersion(2, 0);
+
+ setFormat(qsf);
}
///
@@ -120,8 +118,10 @@ void GLEmberController::ClearWindow()
m_GL->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
m_GL->glClearColor(ember->m_Background.r, ember->m_Background.g, ember->m_Background.b, 1.0);
+ //m_GL->update();
m_GL->makeCurrent();
- m_GL->swapBuffers();
+ //m_GL->context()->swapBuffers(;
+ //m_GL->context()->swapBuffers(m_GL->context()->surface());
m_GL->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
m_GL->glClearColor(ember->m_Background.r, ember->m_Background.g, ember->m_Background.b, 1.0);
@@ -144,6 +144,7 @@ void GLEmberController::SetSelectedXform(Xform* xform)
m_SelectedXform = xform;
if (m_GL->m_Init)
+ //m_GL->update();
m_GL->repaint();//Force immediate redraw with repaint() instead of update().
}
}
@@ -176,14 +177,14 @@ void GLWidget::initializeGL()
{
glClearColor(0.0, 0.0, 0.0, 1.0);
- //int w = m_Fractorium->width() - m_Fractorium->ui.DockWidget->width();
- //int h = m_Fractorium->ui.DockWidget->height();
+ int w = m_Fractorium->width() - m_Fractorium->ui.DockWidget->width();
+ int h = m_Fractorium->ui.DockWidget->height();
- int w = m_Fractorium->ui.GLParentScrollArea->width();
- int h = m_Fractorium->ui.GLParentScrollArea->height();
+ //int w = m_Fractorium->ui.GLParentScrollArea->width();
+ //int h = m_Fractorium->ui.GLParentScrollArea->height();
- //show();
- //m_Fractorium->ui.GLParentScrollArea->showMaximized();
+ //show();
+ //m_Fractorium->ui.GLParentScrollArea->showMaximized();
SetDimensions(w, h);
m_Fractorium->m_WidthSpin->setValue(w);
m_Fractorium->m_HeightSpin->setValue(h);
@@ -198,7 +199,7 @@ void GLWidget::initializeGL()
//Start with a flock of 10 random embers. Can't do this until now because the window wasn't maximized yet, so the sizes would have been off.
m_Fractorium->OnActionNewFlock(false);
- //m_Fractorium->repaint();
+ //m_Fractorium->repaint();
m_Fractorium->m_Controller->DelayedStartRenderTimer();
m_Init = true;
}
@@ -401,7 +402,7 @@ bool GLEmberControllerBase::KeyPress_(QKeyEvent* e)
void GLWidget::keyPressEvent(QKeyEvent* e)
{
if (!GLController() || !GLController()->KeyPress_(e))
- QGLWidget::keyPressEvent(e);
+ QOpenGLWidget::keyPressEvent(e);
update();
}
@@ -441,7 +442,7 @@ bool GLEmberControllerBase::KeyRelease_(QKeyEvent* e)
void GLWidget::keyReleaseEvent(QKeyEvent* e)
{
if (!GLController() || !GLController()->KeyRelease_(e))
- QGLWidget::keyReleaseEvent(e);
+ QOpenGLWidget::keyReleaseEvent(e);
update();
}
@@ -545,7 +546,7 @@ void GLWidget::mousePressEvent(QMouseEvent* e)
if (GLEmberControllerBase* controller = GLController())
controller->MousePress(e);
- QGLWidget::mousePressEvent(e);
+ QOpenGLWidget::mousePressEvent(e);
}
///
@@ -583,7 +584,7 @@ void GLWidget::mouseReleaseEvent(QMouseEvent* e)
if (GLEmberControllerBase* controller = GLController())
controller->MouseRelease(e);
- QGLWidget::mouseReleaseEvent(e);
+ QOpenGLWidget::mouseReleaseEvent(e);
}
///
@@ -692,7 +693,7 @@ void GLWidget::mouseMoveEvent(QMouseEvent* e)
if (GLEmberControllerBase* controller = GLController())
controller->MouseMove(e);
- QGLWidget::mouseMoveEvent(e);
+ QOpenGLWidget::mouseMoveEvent(e);
}
///
@@ -720,7 +721,7 @@ void GLWidget::wheelEvent(QWheelEvent* e)
if (GLEmberControllerBase* controller = GLController())
controller->Wheel(e);
- //Do not call QGLWidget::wheelEvent(e) because this should only affect the scale and not the position of the scroll bars.
+ //Do not call QOpenGLWidget::wheelEvent(e) because this should only affect the scale and not the position of the scroll bars.
}
///
@@ -730,12 +731,14 @@ void GLWidget::wheelEvent(QWheelEvent* e)
/// the OpenGL texture it's being drawn on.
///
/// The event
-void GLWidget::resizeEvent(QResizeEvent* e)
-{
- if (m_Fractorium)
- {
- }
-}
+//void GLWidget::resizeEvent(QResizeEvent* e)
+//{
+// if (m_Fractorium)
+// {
+// }
+//
+// QOpenGLWidget::resizeEvent(e);
+//}
///
/// Set the dimensions of the drawing area.
@@ -746,7 +749,7 @@ void GLWidget::resizeEvent(QResizeEvent* e)
void GLWidget::SetDimensions(int w, int h)
{
setFixedSize(w, h);
- //resize(w, h);
+ //resize(w, h);
//m_Fractorium->ui.GLParentScrollAreaContents->setFixedSize(w, h);
}
@@ -803,7 +806,7 @@ bool GLWidget::Deallocate()
if (m_OutputTexID != 0)
{
- glBindTexture(GL_TEXTURE_2D, m_OutputTexID);
+ glBindTexture(GL_TEXTURE_2D, m_OutputTexID);
glDeleteTextures(1, &m_OutputTexID);
m_OutputTexID = 0;
deleted = true;
diff --git a/Source/Fractorium/GLWidget.h b/Source/Fractorium/GLWidget.h
index 2ae729e..7784c9e 100644
--- a/Source/Fractorium/GLWidget.h
+++ b/Source/Fractorium/GLWidget.h
@@ -28,7 +28,7 @@ static const float GridStep = 1.0f / 8.0f;
/// the main window and several of its members.
/// This class uses a controller-based design similar to the main window.
///
-class GLWidget : public QGLWidget, protected QOpenGLFunctions_2_0//QOpenGLFunctions_3_2_Compatibility//QOpenGLFunctions_3_2_Core//, protected QOpenGLFunctions
+class GLWidget : public QOpenGLWidget, protected QOpenGLFunctions_2_0//QOpenGLFunctions_3_2_Compatibility//QOpenGLFunctions_3_2_Core//, protected QOpenGLFunctions
{
Q_OBJECT
@@ -61,7 +61,7 @@ protected:
virtual void mouseReleaseEvent(QMouseEvent* e) override;
virtual void mouseMoveEvent(QMouseEvent* e) override;
virtual void wheelEvent(QWheelEvent* e) override;
- virtual void resizeEvent(QResizeEvent* e) override;
+ //virtual void resizeEvent(QResizeEvent* e) override;
private:
void SetDimensions(int w, int h);