diff --git a/Builds/QtCreator/Ember/Ember.pro b/Builds/QtCreator/Ember/Ember.pro index ed0b1ca..edafbbe 100644 --- a/Builds/QtCreator/Ember/Ember.pro +++ b/Builds/QtCreator/Ember/Ember.pro @@ -16,7 +16,9 @@ INCLUDEPATH += /usr/include/tbb INCLUDEPATH += /usr/include/libxml2 INCLUDEPATH += ../../../Source/Ember -QMAKE_CXXFLAGS += -O2 +QMAKE_CXXFLAGS_RELEASE += -O2 +QMAKE_CXXFLAGS_RELEASE += -DNDEBUG + QMAKE_CXXFLAGS += -march=k8 QMAKE_CXXFLAGS += -fPIC QMAKE_CXXFLAGS += -fpermissive @@ -43,11 +45,10 @@ QMAKE_CXXFLAGS += -Wno-unused-function QMAKE_CXXFLAGS += -Wold-style-cast QMAKE_CXXFLAGS += -D_M_X64 QMAKE_CXXFLAGS += -D_USRDLL -QMAKE_CXXFLAGS += -DNDEBUG QMAKE_CXXFLAGS += -D_CONSOLE QMAKE_CXXFLAGS += -DBUILDING_EMBER -QMAKE_LFLAGS += -s +QMAKE_LFLAGS_RELEASE += -s PRECOMPILED_HEADER = ../../../Source/Ember/EmberPch.h diff --git a/Builds/QtCreator/EmberAnimate/EmberAnimate.pro b/Builds/QtCreator/EmberAnimate/EmberAnimate.pro index 97e2fa9..8bf8569 100644 --- a/Builds/QtCreator/EmberAnimate/EmberAnimate.pro +++ b/Builds/QtCreator/EmberAnimate/EmberAnimate.pro @@ -25,7 +25,9 @@ INCLUDEPATH += ../../../Source/Ember INCLUDEPATH += ../../../Source/EmberCL INCLUDEPATH += ../../../Source/EmberCommon -QMAKE_CXXFLAGS += -O2 +QMAKE_CXXFLAGS_RELEASE += -O2 +QMAKE_CXXFLAGS_RELEASE += -DNDEBUG + QMAKE_CXXFLAGS += -march=k8 QMAKE_CXXFLAGS += -fPIC QMAKE_CXXFLAGS += -fpermissive @@ -55,7 +57,7 @@ QMAKE_CXXFLAGS += -D_USRDLL QMAKE_CXXFLAGS += -DNDEBUG QMAKE_CXXFLAGS += -D_CONSOLE -QMAKE_LFLAGS += -s +QMAKE_LFLAGS_RELEASE += -s PRECOMPILED_HEADER = ../../../Source/EmberCommon/EmberCommonPch.h diff --git a/Builds/QtCreator/EmberCL/EmberCL.pro b/Builds/QtCreator/EmberCL/EmberCL.pro index c3bea32..2c0e83d 100644 --- a/Builds/QtCreator/EmberCL/EmberCL.pro +++ b/Builds/QtCreator/EmberCL/EmberCL.pro @@ -18,7 +18,9 @@ INCLUDEPATH += /usr/include/tbb INCLUDEPATH += /usr/include/libxml2 INCLUDEPATH += ../../../Source/Ember -QMAKE_CXXFLAGS += -O2 +QMAKE_CXXFLAGS_RELEASE += -O2 +QMAKE_CXXFLAGS_RELEASE += -DNDEBUG + QMAKE_CXXFLAGS += -march=k8 QMAKE_CXXFLAGS += -fPIC QMAKE_CXXFLAGS += -fpermissive @@ -45,11 +47,10 @@ QMAKE_CXXFLAGS += -Wno-unused-function QMAKE_CXXFLAGS += -Wold-style-cast QMAKE_CXXFLAGS += -D_M_X64 QMAKE_CXXFLAGS += -D_USRDLL -QMAKE_CXXFLAGS += -DNDEBUG QMAKE_CXXFLAGS += -D_CONSOLE QMAKE_CXXFLAGS += -BUILDING_EMBERCL -QMAKE_LFLAGS += -s +QMAKE_LFLAGS_RELEASE += -s PRECOMPILED_HEADER = ../../../Source/EmberCL/EmberCLPch.h diff --git a/Builds/QtCreator/EmberGenome/EmberGenome.pro b/Builds/QtCreator/EmberGenome/EmberGenome.pro index dea4173..9e085bf 100644 --- a/Builds/QtCreator/EmberGenome/EmberGenome.pro +++ b/Builds/QtCreator/EmberGenome/EmberGenome.pro @@ -25,7 +25,9 @@ INCLUDEPATH += ../../../Source/Ember INCLUDEPATH += ../../../Source/EmberCL INCLUDEPATH += ../../../Source/EmberCommon -QMAKE_CXXFLAGS += -O2 +QMAKE_CXXFLAGS_RELEASE += -O2 +QMAKE_CXXFLAGS_RELEASE += -DNDEBUG + QMAKE_CXXFLAGS += -march=k8 QMAKE_CXXFLAGS += -fPIC QMAKE_CXXFLAGS += -fpermissive @@ -55,7 +57,7 @@ QMAKE_CXXFLAGS += -D_USRDLL QMAKE_CXXFLAGS += -DNDEBUG QMAKE_CXXFLAGS += -D_CONSOLE -QMAKE_LFLAGS += -s +QMAKE_LFLAGS_RELEASE += -s PRECOMPILED_HEADER = ../../../Source/EmberCommon/EmberCommonPch.h diff --git a/Builds/QtCreator/EmberRender/EmberRender.pro b/Builds/QtCreator/EmberRender/EmberRender.pro index a0d08a9..bad1123 100644 --- a/Builds/QtCreator/EmberRender/EmberRender.pro +++ b/Builds/QtCreator/EmberRender/EmberRender.pro @@ -25,7 +25,9 @@ INCLUDEPATH += ../../../Source/Ember INCLUDEPATH += ../../../Source/EmberCL INCLUDEPATH += ../../../Source/EmberCommon -QMAKE_CXXFLAGS += -O2 +QMAKE_CXXFLAGS_RELEASE += -O2 +QMAKE_CXXFLAGS_RELEASE += -DNDEBUG + QMAKE_CXXFLAGS += -march=k8 QMAKE_CXXFLAGS += -fPIC QMAKE_CXXFLAGS += -fpermissive @@ -55,7 +57,7 @@ QMAKE_CXXFLAGS += -D_USRDLL QMAKE_CXXFLAGS += -DNDEBUG QMAKE_CXXFLAGS += -D_CONSOLE -QMAKE_LFLAGS += -s +QMAKE_LFLAGS_RELEASE += -s PRECOMPILED_HEADER = ../../../Source/EmberCommon/EmberCommonPch.h diff --git a/Builds/QtCreator/Fractorium/Fractorium.pro b/Builds/QtCreator/Fractorium/Fractorium.pro index 7bf6fc1..800e816 100644 --- a/Builds/QtCreator/Fractorium/Fractorium.pro +++ b/Builds/QtCreator/Fractorium/Fractorium.pro @@ -34,7 +34,9 @@ INCLUDEPATH += ../../../Source/EmberCL INCLUDEPATH += ../../../Source/EmberCommon INCLUDEPATH += ../../../Source/Fractorium -QMAKE_CXXFLAGS += -O2 +QMAKE_CXXFLAGS_RELEASE += -O2 +QMAKE_CXXFLAGS_RELEASE += -DNDEBUG + QMAKE_CXXFLAGS += -march=k8 QMAKE_CXXFLAGS += -fPIC QMAKE_CXXFLAGS += -fpermissive @@ -62,10 +64,9 @@ QMAKE_CXXFLAGS += -Wno-unused-function QMAKE_CXXFLAGS += -Wold-style-cast QMAKE_CXXFLAGS += -D_M_X64 QMAKE_CXXFLAGS += -D_USRDLL -QMAKE_CXXFLAGS += -DNDEBUG QMAKE_CXXFLAGS += -D_CONSOLE -QMAKE_LFLAGS += -s +QMAKE_LFLAGS_RELEASE += -s PRECOMPILED_HEADER = ../../../Source/Fractorium/FractoriumPch.h diff --git a/Source/Ember/Timing.h b/Source/Ember/Timing.h index 6033ce8..e5bb341 100644 --- a/Source/Ember/Timing.h +++ b/Source/Ember/Timing.h @@ -193,6 +193,8 @@ private: CriticalSection() { pthread_mutexattr_t 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/Fractorium.cpp b/Source/Fractorium/Fractorium.cpp index e7ae392..4843c7f 100644 --- a/Source/Fractorium/Fractorium.cpp +++ b/Source/Fractorium/Fractorium.cpp @@ -149,11 +149,12 @@ Fractorium::Fractorium(QWidget* p) //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 @@ -262,6 +263,7 @@ bool Fractorium::eventFilter(QObject* o, QEvent* e) { m_WidthSpin->DoubleClickNonZero(ui.GLParentScrollArea->width()); m_HeightSpin->DoubleClickNonZero(ui.GLParentScrollArea->height()); + //qDebug() << "scroll area resized"; } return QMainWindow::eventFilter(o, e); diff --git a/Source/Fractorium/Fractorium.ui b/Source/Fractorium/Fractorium.ui index 7461808..9890712 100644 --- a/Source/Fractorium/Fractorium.ui +++ b/Source/Fractorium/Fractorium.ui @@ -35,6 +35,12 @@ + + + 16 + 16 + + @@ -65,12 +71,12 @@ 0 0 - 923 - 942 + 926 + 941 - + 0 0 @@ -89,7 +95,7 @@ 0 0 1214 - 21 + 20 @@ -382,8 +388,8 @@ 0 0 - 259 - 852 + 261 + 845 @@ -489,8 +495,8 @@ 0 0 - 259 - 852 + 261 + 845 @@ -2810,8 +2816,8 @@ SpinBox 0 0 - 245 - 747 + 141 + 610 @@ -5026,8 +5032,8 @@ SpinBox 0 0 - 259 - 853 + 98 + 470 diff --git a/Source/Fractorium/FractoriumRender.cpp b/Source/Fractorium/FractoriumRender.cpp index 5990afa..64e24fd 100644 --- a/Source/Fractorium/FractoriumRender.cpp +++ b/Source/Fractorium/FractoriumRender.cpp @@ -266,7 +266,7 @@ bool FractoriumEmberController::SyncSizes() { bool changed = false; GLWidget* gl = m_Fractorium->ui.GLDisplay; - RendererCL* rendererCL; + RendererCL* rendererCL = nullptr; if (!m_GLController->SizesMatch()) { diff --git a/Source/Fractorium/GLWidget.cpp b/Source/Fractorium/GLWidget.cpp index 944f35d..a4e4859 100644 --- a/Source/Fractorium/GLWidget.cpp +++ b/Source/Fractorium/GLWidget.cpp @@ -176,9 +176,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->ui.GLParentScrollArea->width(); int h = m_Fractorium->ui.GLParentScrollArea->height(); + //show(); + //m_Fractorium->ui.GLParentScrollArea->showMaximized(); SetDimensions(w, h); m_Fractorium->m_WidthSpin->setValue(w); m_Fractorium->m_HeightSpin->setValue(h); @@ -193,6 +198,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->m_Controller->DelayedStartRenderTimer(); m_Init = true; } @@ -740,6 +746,7 @@ void GLWidget::resizeEvent(QResizeEvent* e) void GLWidget::SetDimensions(int w, int h) { setFixedSize(w, h); + //resize(w, h); //m_Fractorium->ui.GLParentScrollAreaContents->setFixedSize(w, h); } @@ -764,10 +771,7 @@ bool GLWidget::Allocate(bool force) glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); if (doResize) - { - glBindTexture(GL_TEXTURE_2D, m_OutputTexID); Deallocate(); - } glGenTextures(1, &m_OutputTexID); glBindTexture(GL_TEXTURE_2D, m_OutputTexID); @@ -799,6 +803,7 @@ bool GLWidget::Deallocate() if (m_OutputTexID != 0) { + 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 60493c3..2ae729e 100644 --- a/Source/Fractorium/GLWidget.h +++ b/Source/Fractorium/GLWidget.h @@ -62,7 +62,7 @@ protected: virtual void mouseMoveEvent(QMouseEvent* e) override; virtual void wheelEvent(QWheelEvent* e) override; virtual void resizeEvent(QResizeEvent* e) override; - + private: void SetDimensions(int w, int h); bool Allocate(bool force = false); diff --git a/Source/Fractorium/Main.cpp b/Source/Fractorium/Main.cpp index d27c20f..31709dc 100644 --- a/Source/Fractorium/Main.cpp +++ b/Source/Fractorium/Main.cpp @@ -31,9 +31,6 @@ int main(int argc, char *argv[]) #endif #ifndef WIN32 - //a.setStyle("motif"); - //a.setStyleSheet("QGroupBox { border: 1px solid gray; border-radius: 3px; margin-top: 1em; } "); - a.setStyleSheet("QGroupBox { border: 1px solid gray; border-radius: 3px; margin-top: 1.1em; background-color: transparent; } \n" "QTabBar::tab { height: 2.8ex; } \n" "QGroupBox::title "