Merge pull request #35 from gambhiro/linux-mac-0.9.9.2

Linux mac 0.9.9.2
This commit is contained in:
Matt Feemster 2015-12-11 22:23:14 -08:00
commit 914b5412c3
24 changed files with 736 additions and 211 deletions

62
.bzrignore Normal file
View File

@ -0,0 +1,62 @@
*.user
*.opensdf
*.sdf
*.suo
*.obj
*.tlog
*.def
*.dll
*.manifest
*.exp
*.lastbuildstate
*.lib
*.log
*.map
*.pdb
*.cache
*.res
*.ipch
*.bsc
*.exe
*.xml
*.ilk
*.wixobj
*.pch
*.txt
*.msi
*.idb
*.flam3
*moc_*
*GeneratedFiles*
*.unsuccessfulbuild
*\Obj\*
Builds/MSVC/VS2010/Obj/x64/Debug/EmberCL_manifest.rc
Builds/MSVC/VS2010/Obj/EmberTester/x64/Debug/EmberTester_manifest.rc
Builds/MSVC/VS2010/Obj/EmberRender/x64/Debug/EmberRender_manifest.rc
Builds/MSVC/VS2010/Obj/EmberGenome/x64/Debug/EmberGenome_manifest.rc
Builds/MSVC/VS2010/Obj/EmberAnimate/x64/Debug/EmberAnimate_manifest.rc
Builds/MSVC/VS2010/Obj/Ember/x64/Debug/Ember_manifest.rc
Bin/x64/Release/testallvarsout.flame
Data/~$Bench.xlsx
*.ps1
*.o
ui_*.h
qrc_*.cpp
Bin/x64/Release/Bench.flame
Builds/QtCreator/build*
.qmake.stash
*.gch
debug/
release/
Bin/
Makefile
Builds/QtCreator/.obj/
Builds/QtCreator/.moc/
Builds/QtCreator/.qrc/
Builds/QtCreator/.ui/
Builds/QtCreator/Ember/Makefile
Builds/QtCreator/EmberAnimate/Makefile
Builds/QtCreator/EmberCL/Makefile
Builds/QtCreator/EmberGenome/Makefile
Builds/QtCreator/EmberRender/Makefile
Builds/QtCreator/Fractorium/Makefile

13
.gitignore vendored
View File

@ -44,8 +44,19 @@ ui_*.h
qrc_*.cpp
Bin/x64/Release/Bench.flame
Builds/QtCreator/build*
Makefile
.qmake.stash
*.gch
debug/
release/
Bin/
Makefile
Builds/QtCreator/.obj/
Builds/QtCreator/.moc/
Builds/QtCreator/.qrc/
Builds/QtCreator/.ui/
Builds/QtCreator/Ember/Makefile
Builds/QtCreator/EmberAnimate/Makefile
Builds/QtCreator/EmberCL/Makefile
Builds/QtCreator/EmberGenome/Makefile
Builds/QtCreator/EmberRender/Makefile
Builds/QtCreator/Fractorium/Makefile

View File

@ -4,56 +4,62 @@ CONFIG += shared
CONFIG -= app_bundle
CONFIG -= qt
include(../shared_settings.pri)
include(../defaults.pri)
!macx:PRECOMPILED_HEADER = ../../../Source/Ember/EmberPch.h
PRJ_DIR = $$SRC_DIR/Ember
QMAKE_CXXFLAGS += -D_USRDLL
target.path = $$LIB_INSTALL_DIR
INSTALLS += target
!macx:PRECOMPILED_HEADER = $$PRJ_DIR/EmberPch.h
QMAKE_CXXFLAGS += -D_USRDLL
QMAKE_CXXFLAGS += -D_CONSOLE
QMAKE_CXXFLAGS += -BUILDING_EMBER
SOURCES += \
../../../Source/Ember/Affine2D.cpp \
../../../Source/Ember/DllMain.cpp \
../../../Source/Ember/Ember.cpp \
../../../Source/Ember/EmberPch.cpp \
../../../Source/Ember/Renderer.cpp \
../../../Source/Ember/RendererBase.cpp
$$PRJ_DIR/Affine2D.cpp \
$$PRJ_DIR/DllMain.cpp \
$$PRJ_DIR/Ember.cpp \
$$PRJ_DIR/EmberPch.cpp \
$$PRJ_DIR/RendererBase.cpp \
$$PRJ_DIR/Renderer.cpp
include(deployment.pri)
qtcAddDeployment()
HEADERS += \
../../../Source/Ember/Affine2D.h \
../../../Source/Ember/CarToRas.h \
../../../Source/Ember/DensityFilter.h \
../../../Source/Ember/Ember.h \
../../../Source/Ember/EmberDefines.h \
../../../Source/Ember/EmberPch.h \
../../../Source/Ember/EmberToXml.h \
../../../Source/Ember/Interpolate.h \
../../../Source/Ember/Isaac.h \
../../../Source/Ember/Iterator.h \
../../../Source/Ember/Palette.h \
../../../Source/Ember/PaletteList.h \
../../../Source/Ember/Point.h \
../../../Source/Ember/Renderer.h \
../../../Source/Ember/RendererBase.h \
../../../Source/Ember/SheepTools.h \
../../../Source/Ember/SpatialFilter.h \
../../../Source/Ember/TemporalFilter.h \
../../../Source/Ember/Timing.h \
../../../Source/Ember/Utils.h \
../../../Source/Ember/Variation.h \
../../../Source/Ember/VariationList.h \
../../../Source/Ember/Variations01.h \
../../../Source/Ember/Variations02.h \
../../../Source/Ember/Variations03.h \
../../../Source/Ember/Variations04.h \
../../../Source/Ember/Variations05.h \
../../../Source/Ember/Variations06.h \
../../../Source/Ember/VariationsDC.h \
../../../Source/Ember/Xform.h \
../../../Source/Ember/XmlToEmber.h \
../../../Source/Ember/EmberMotion.h
$$PRJ_DIR/Affine2D.h \
$$PRJ_DIR/CarToRas.h \
$$PRJ_DIR/Curves.h \
$$PRJ_DIR/DensityFilter.h \
$$PRJ_DIR/EmberDefines.h \
$$PRJ_DIR/Ember.h \
$$PRJ_DIR/EmberMotion.h \
$$PRJ_DIR/EmberPch.h \
$$PRJ_DIR/EmberToXml.h \
$$PRJ_DIR/Interpolate.h \
$$PRJ_DIR/Isaac.h \
$$PRJ_DIR/Iterator.h \
$$PRJ_DIR/Palette.h \
$$PRJ_DIR/PaletteList.h \
$$PRJ_DIR/Point.h \
$$PRJ_DIR/RendererBase.h \
$$PRJ_DIR/Renderer.h \
$$PRJ_DIR/SheepTools.h \
$$PRJ_DIR/SpatialFilter.h \
$$PRJ_DIR/TemporalFilter.h \
$$PRJ_DIR/Timing.h \
$$PRJ_DIR/Utils.h \
$$PRJ_DIR/Variation.h \
$$PRJ_DIR/VariationList.h \
$$PRJ_DIR/Variations01.h \
$$PRJ_DIR/Variations02.h \
$$PRJ_DIR/Variations03.h \
$$PRJ_DIR/Variations04.h \
$$PRJ_DIR/Variations05.h \
$$PRJ_DIR/Variations06.h \
$$PRJ_DIR/VariationsDC.h \
$$PRJ_DIR/Xform.h \
$$PRJ_DIR/XmlToEmber.h

View File

@ -3,26 +3,33 @@ CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
include(../shared_settings.pri)
TARGET = emberanimate
include(../defaults.pri)
PRJ_DIR = $$SRC_DIR/EmberAnimate
target.path = $$BIN_INSTALL_DIR
INSTALLS += target
LIBS += -L$$absolute_path($$DESTDIR) -lEmber
LIBS += -L$$absolute_path($$DESTDIR) -lEmberCL
!macx:PRECOMPILED_HEADER = ../../../Source/EmberCommon/EmberCommonPch.h
!macx:PRECOMPILED_HEADER = $$SRC_COMMON_DIR/EmberCommonPch.h
SOURCES += \
../../../Source/EmberAnimate/EmberAnimate.cpp \
../../../Source/EmberCommon/EmberCommonPch.cpp
$$PRJ_DIR/EmberAnimate.cpp \
$$SRC_COMMON_DIR/EmberCommonPch.cpp
include(deployment.pri)
qtcAddDeployment()
HEADERS += \
../../../Source/EmberAnimate/EmberAnimate.h \
../../../Source/EmberCommon/EmberCommon.h \
../../../Source/EmberCommon/EmberCommonPch.h \
../../../Source/EmberCommon/EmberOptions.h \
../../../Source/EmberCommon/JpegUtils.h \
../../../Source/EmberCommon/SimpleGlob.h \
../../../Source/EmberCommon/SimpleOpt.h
$$PRJ_DIR/EmberAnimate.h \
$$SRC_COMMON_DIR/EmberCommon.h \
$$SRC_COMMON_DIR/EmberCommonPch.h \
$$SRC_COMMON_DIR/EmberOptions.h \
$$SRC_COMMON_DIR/JpegUtils.h \
$$SRC_COMMON_DIR/SimpleGlob.h \
$$SRC_COMMON_DIR/SimpleOpt.h

View File

@ -4,40 +4,45 @@ CONFIG += shared
CONFIG -= app_bundle
CONFIG -= qt
include(../shared_settings.pri)
include(../defaults.pri)
PRJ_DIR = $$SRC_DIR/EmberCL
target.path = $$LIB_INSTALL_DIR
INSTALLS += target
LIBS += -L$$absolute_path($$DESTDIR) -lEmber
!macx:PRECOMPILED_HEADER = ../../../Source/EmberCL/EmberCLPch.h
!macx:PRECOMPILED_HEADER = $$PRJ_DIR/EmberCLPch.h
QMAKE_CXXFLAGS += -D_USRDLL
QMAKE_CXXFLAGS += -D_USRDLL
QMAKE_CXXFLAGS += -D_CONSOLE
QMAKE_CXXFLAGS += -BUILDING_EMBERCL
SOURCES += \
../../../Source/EmberCL/DllMain.cpp \
../../../Source/EmberCL/DEOpenCLKernelCreator.cpp \
../../../Source/EmberCL/FinalAccumOpenCLKernelCreator.cpp \
../../../Source/EmberCL/FunctionMapper.cpp \
../../../Source/EmberCL/IterOpenCLKernelCreator.cpp \
../../../Source/EmberCL/OpenCLInfo.cpp \
../../../Source/EmberCL/OpenCLWrapper.cpp \
../../../Source/EmberCL/RendererCL.cpp \
../../../Source/EmberCL/RendererCLDevice.cpp
$$PRJ_DIR/DEOpenCLKernelCreator.cpp \
$$PRJ_DIR/DllMain.cpp \
$$PRJ_DIR/FinalAccumOpenCLKernelCreator.cpp \
$$PRJ_DIR/FunctionMapper.cpp \
$$PRJ_DIR/IterOpenCLKernelCreator.cpp \
$$PRJ_DIR/OpenCLInfo.cpp \
$$PRJ_DIR/OpenCLWrapper.cpp \
$$PRJ_DIR/RendererCL.cpp \
$$PRJ_DIR/RendererClDevice.cpp
include(deployment.pri)
qtcAddDeployment()
HEADERS += \
../../../Source/EmberCL/DEOpenCLKernelCreator.h \
../../../Source/EmberCL/EmberCLFunctions.h \
../../../Source/EmberCL/EmberCLPch.h \
../../../Source/EmberCL/EmberCLStructs.h \
../../../Source/EmberCL/FinalAccumOpenCLKernelCreator.h \
../../../Source/EmberCL/FunctionMapper.h \
../../../Source/EmberCL/IterOpenCLKernelCreator.h \
../../../Source/EmberCL/OpenCLInfo.h \
../../../Source/EmberCL/OpenCLWrapper.h \
../../../Source/EmberCL/RendererCL.h \
../../../Source/EmberCL/RendererCLDevice.h
$$PRJ_DIR/DEOpenCLKernelCreator.h \
$$PRJ_DIR/EmberCLFunctions.h \
$$PRJ_DIR/EmberCLPch.h \
$$PRJ_DIR/EmberCLStructs.h \
$$PRJ_DIR/FinalAccumOpenCLKernelCreator.h \
$$PRJ_DIR/FunctionMapper.h \
$$PRJ_DIR/IterOpenCLKernelCreator.h \
$$PRJ_DIR/OpenCLInfo.h \
$$PRJ_DIR/OpenCLWrapper.h \
$$PRJ_DIR/RendererClDevice.h \
$$PRJ_DIR/RendererCL.h

View File

@ -3,26 +3,33 @@ CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
include(../shared_settings.pri)
TARGET = embergenome
include(../defaults.pri)
target.path = $$BIN_INSTALL_DIR
INSTALLS += target
LIBS += -L$$absolute_path($$DESTDIR) -lEmber
LIBS += -L$$absolute_path($$DESTDIR) -lEmberCL
!macx:PRECOMPILED_HEADER = ../../../Source/EmberCommon/EmberCommonPch.h
PRJ_DIR = $$SRC_DIR/EmberGenome
!macx:PRECOMPILED_HEADER = $$SRC_COMMON_DIR/EmberCommonPch.h
SOURCES += \
../../../Source/EmberGenome/EmberGenome.cpp \
../../../Source/EmberCommon/EmberCommonPch.cpp
$$PRJ_DIR/EmberGenome.cpp \
$$SRC_COMMON_DIR/EmberCommonPch.cpp
include(deployment.pri)
qtcAddDeployment()
HEADERS += \
../../../Source/EmberGenome/EmberGenome.h \
../../../Source/EmberCommon/EmberCommon.h \
../../../Source/EmberCommon/EmberCommonPch.h \
../../../Source/EmberCommon/EmberOptions.h \
../../../Source/EmberCommon/JpegUtils.h \
../../../Source/EmberCommon/SimpleGlob.h \
../../../Source/EmberCommon/SimpleOpt.h
$$PRJ_DIR/EmberGenome.h \
$$SRC_COMMON_DIR/EmberCommon.h \
$$SRC_COMMON_DIR/EmberCommonPch.h \
$$SRC_COMMON_DIR/EmberOptions.h \
$$SRC_COMMON_DIR/JpegUtils.h \
$$SRC_COMMON_DIR/SimpleGlob.h \
$$SRC_COMMON_DIR/SimpleOpt.h

View File

@ -3,26 +3,33 @@ CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
include(../shared_settings.pri)
TARGET = emberrender
include(../defaults.pri)
PRJ_DIR = $$SRC_DIR/EmberRender
target.path = $$BIN_INSTALL_DIR
INSTALLS += target
LIBS += -L$$absolute_path($$DESTDIR) -lEmber
LIBS += -L$$absolute_path($$DESTDIR) -lEmberCL
!macx:PRECOMPILED_HEADER = ../../../Source/EmberCommon/EmberCommonPch.h
!macx:PRECOMPILED_HEADER = $$SRC_COMMON_DIR/EmberCommonPch.h
SOURCES += \
../../../Source/EmberRender/EmberRender.cpp \
../../../Source/EmberCommon/EmberCommonPch.cpp
$$PRJ_DIR/EmberRender.cpp \
$$SRC_COMMON_DIR/EmberCommonPch.cpp
include(deployment.pri)
qtcAddDeployment()
HEADERS += \
../../../Source/EmberRender/EmberRender.h \
../../../Source/EmberCommon/EmberCommon.h \
../../../Source/EmberCommon/EmberCommonPch.h \
../../../Source/EmberCommon/EmberOptions.h \
../../../Source/EmberCommon/JpegUtils.h \
../../../Source/EmberCommon/SimpleGlob.h \
../../../Source/EmberCommon/SimpleOpt.h
$$PRJ_DIR/EmberRender.h \
$$SRC_COMMON_DIR/EmberCommon.h \
$$SRC_COMMON_DIR/EmberCommonPch.h \
$$SRC_COMMON_DIR/EmberOptions.h \
$$SRC_COMMON_DIR/JpegUtils.h \
$$SRC_COMMON_DIR/SimpleGlob.h \
$$SRC_COMMON_DIR/SimpleOpt.h

View File

@ -1,108 +1,122 @@
#-------------------------------------------------
#
# Project created by QtCreator 2014-12-09T21:18:06
#
#-------------------------------------------------
QT += core gui opengl concurrent
TEMPLATE = app
QT += core gui opengl concurrent
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Fractorium
TEMPLATE = app
TARGET = fractorium
include(../shared_settings.pri)
include(../defaults.pri)
macx:ICON = ../../package/osx/Fractorium.icns
# TODO: Figure out how to build the app bundle correctly.
# This will build a binary instead of an app bundle.
macx:CONFIG -= app_bundle
PRJ_DIR = $$SRC_DIR/Fractorium
target.path = $$BIN_INSTALL_DIR
INSTALLS += target
# FIXME: flam3-palettes.xml does not install when installing from .deb, but `make install` works.
palettes.path = $$SHARE_INSTALL_DIR
palettes.files = $$ASSETS_DIR/flam3-palettes.xml
INSTALLS += palettes
themes.path = $$SHARE_INSTALL_DIR
themes.files = $$ASSETS_DIR/dark.qss
INSTALLS += themes
macx:ICON = $$ASSETS_DIR/Fractorium.icns
LIBS += -L$$absolute_path($$DESTDIR) -lEmber
LIBS += -L$$absolute_path($$DESTDIR) -lEmberCL
INCLUDEPATH += ../../../Source/Fractorium
INCLUDEPATH += $$PRJ_DIR
!macx:PRECOMPILED_HEADER = ../../../Source/Fractorium/FractoriumPch.h
!macx:PRECOMPILED_HEADER = $$PRJ_DIR/FractoriumPch.h
SOURCES += \
../../../Source/Fractorium/AboutDialog.cpp \
../../../Source/Fractorium/CurvesGraphicsView.cpp \
../../../Source/Fractorium/DoubleSpinBox.cpp \
../../../Source/Fractorium/FinalRenderDialog.cpp \
../../../Source/Fractorium/FinalRenderEmberController.cpp \
../../../Source/Fractorium/Fractorium.cpp \
../../../Source/Fractorium/FractoriumEmberController.cpp \
../../../Source/Fractorium/FractoriumInfo.cpp \
../../../Source/Fractorium/FractoriumLibrary.cpp \
../../../Source/Fractorium/FractoriumMenus.cpp \
../../../Source/Fractorium/FractoriumPalette.cpp \
../../../Source/Fractorium/FractoriumParams.cpp \
../../../Source/Fractorium/FractoriumPch.cpp \
../../../Source/Fractorium/FractoriumRender.cpp \
../../../Source/Fractorium/FractoriumSettings.cpp \
../../../Source/Fractorium/FractoriumToolbar.cpp \
../../../Source/Fractorium/FractoriumXaos.cpp \
../../../Source/Fractorium/FractoriumXforms.cpp \
../../../Source/Fractorium/FractoriumXformsAffine.cpp \
../../../Source/Fractorium/FractoriumXformsColor.cpp \
../../../Source/Fractorium/FractoriumXformsSelect.cpp \
../../../Source/Fractorium/FractoriumXformsVariations.cpp \
../../../Source/Fractorium/GLEmberController.cpp \
../../../Source/Fractorium/GLWidget.cpp \
../../../Source/Fractorium/Main.cpp \
../../../Source/Fractorium/OptionsDialog.cpp \
../../../Source/Fractorium/VariationsDialog.cpp \
../../../Source/Fractorium/SpinBox.cpp \
../../../Source/Fractorium/csshighlighter.cpp \
../../../Source/Fractorium/qcssparser.cpp \
../../../Source/Fractorium/qcssscanner.cpp \
../../../Source/Fractorium/QssDialog.cpp \
../../../Source/Fractorium/QssTextEdit.cpp
$$PRJ_DIR/AboutDialog.cpp \
$$PRJ_DIR/csshighlighter.cpp \
$$PRJ_DIR/CurvesGraphicsView.cpp \
$$PRJ_DIR/DoubleSpinBox.cpp \
$$PRJ_DIR/FinalRenderDialog.cpp \
$$PRJ_DIR/FinalRenderEmberController.cpp \
$$PRJ_DIR/Fractorium.cpp \
$$PRJ_DIR/FractoriumEmberController.cpp \
$$PRJ_DIR/FractoriumInfo.cpp \
$$PRJ_DIR/FractoriumLibrary.cpp \
$$PRJ_DIR/FractoriumMenus.cpp \
$$PRJ_DIR/FractoriumPalette.cpp \
$$PRJ_DIR/FractoriumParams.cpp \
$$PRJ_DIR/FractoriumPch.cpp \
$$PRJ_DIR/FractoriumRender.cpp \
$$PRJ_DIR/FractoriumSettings.cpp \
$$PRJ_DIR/FractoriumToolbar.cpp \
$$PRJ_DIR/FractoriumXaos.cpp \
$$PRJ_DIR/FractoriumXformsAffine.cpp \
$$PRJ_DIR/FractoriumXformsColor.cpp \
$$PRJ_DIR/FractoriumXforms.cpp \
$$PRJ_DIR/FractoriumXformsSelect.cpp \
$$PRJ_DIR/FractoriumXformsVariations.cpp \
$$PRJ_DIR/GLEmberController.cpp \
$$PRJ_DIR/GLWidget.cpp \
$$PRJ_DIR/Main.cpp \
$$PRJ_DIR/OptionsDialog.cpp \
$$PRJ_DIR/qcssparser.cpp \
$$PRJ_DIR/qcssscanner.cpp \
$$PRJ_DIR/QssDialog.cpp \
$$PRJ_DIR/QssTextEdit.cpp \
$$PRJ_DIR/SpinBox.cpp \
$$PRJ_DIR/VariationsDialog.cpp
HEADERS += \
../../../Source/Fractorium/AboutDialog.h \
../../../Source/Fractorium/CurvesGraphicsView.h \
../../../Source/Fractorium/DoubleSpinBox.h \
../../../Source/Fractorium/EmberFile.h \
../../../Source/Fractorium/EmberTreeWidgetItem.h \
../../../Source/Fractorium/FinalRenderDialog.h \
../../../Source/Fractorium/FinalRenderEmberController.h \
../../../Source/Fractorium/Fractorium.h \
../../../Source/Fractorium/FractoriumEmberController.h \
../../../Source/Fractorium/FractoriumPch.h \
../../../Source/Fractorium/FractoriumSettings.h \
../../../Source/Fractorium/GLEmberController.h \
../../../Source/Fractorium/GLWidget.h \
../../../Source/Fractorium/OptionsDialog.h \
../../../Source/Fractorium/resource.h \
../../../Source/Fractorium/SpinBox.h \
../../../Source/Fractorium/StealthComboBox.h \
../../../Source/Fractorium/TableWidget.h \
../../../Source/Fractorium/TwoButtonComboWidget.h \
../../../Source/Fractorium/VariationTreeWidgetItem.h \
../../../Source/EmberCommon/EmberCommon.h \
../../../Source/EmberCommon/JpegUtils.h \
../../../Source/EmberCommon/EmberCommonPch.h \
../../../Source/Fractorium/FractoriumCommon.h \
../../../Source/Fractorium/DoubleSpinBoxTableItemDelegate.h \
../../../Source/Fractorium/PaletteTableWidgetItem.h \
../../../Source/Fractorium/VariationsDialog.h \
../../../Source/Fractorium/csshighlighter.h \
../../../Source/Fractorium/qcssparser.h \
../../../Source/Fractorium/qcssscanner.h \
../../../Source/Fractorium/qfunctions.h \
../../../Source/Fractorium/QssDialog.h \
../../../Source/Fractorium/QssTextEdit.h
HEADERS += \
$$SRC_COMMON_DIR/EmberCommon.h \
$$SRC_COMMON_DIR/EmberCommonPch.h \
$$SRC_COMMON_DIR/JpegUtils.h \
$$PRJ_DIR/AboutDialog.h \
$$PRJ_DIR/csshighlighter.h \
$$PRJ_DIR/CurvesGraphicsView.h \
$$PRJ_DIR/DoubleSpinBox.h \
$$PRJ_DIR/DoubleSpinBoxTableItemDelegate.h \
$$PRJ_DIR/EmberFile.h \
$$PRJ_DIR/EmberTreeWidgetItem.h \
$$PRJ_DIR/FinalRenderDialog.h \
$$PRJ_DIR/FinalRenderEmberController.h \
$$PRJ_DIR/FractoriumCommon.h \
$$PRJ_DIR/FractoriumEmberController.h \
$$PRJ_DIR/Fractorium.h \
$$PRJ_DIR/FractoriumPch.h \
$$PRJ_DIR/FractoriumSettings.h \
$$PRJ_DIR/GLEmberController.h \
$$PRJ_DIR/GLWidget.h \
$$PRJ_DIR/OptionsDialog.h \
$$PRJ_DIR/PaletteTableWidgetItem.h \
$$PRJ_DIR/qcssparser.h \
$$PRJ_DIR/qcssscanner.h \
$$PRJ_DIR/qfunctions.h \
$$PRJ_DIR/QssDialog.h \
$$PRJ_DIR/QssTextEdit.h \
$$PRJ_DIR/resource.h \
$$PRJ_DIR/SpinBox.h \
$$PRJ_DIR/StealthComboBox.h \
$$PRJ_DIR/TableWidget.h \
$$PRJ_DIR/TwoButtonComboWidget.h \
$$PRJ_DIR/VariationsDialog.h \
$$PRJ_DIR/VariationTreeWidgetItem.h
FORMS += \
../../../Source/Fractorium/AboutDialog.ui \
../../../Source/Fractorium/FinalRenderDialog.ui \
../../../Source/Fractorium/Fractorium.ui \
../../../Source/Fractorium/VariationsDialog.ui \
../../../Source/Fractorium/OptionsDialog.ui \
../../../Source/Fractorium/QssDialog.ui
FORMS += \
$$PRJ_DIR/AboutDialog.ui \
$$PRJ_DIR/FinalRenderDialog.ui \
$$PRJ_DIR/Fractorium.ui \
$$PRJ_DIR/OptionsDialog.ui \
$$PRJ_DIR/QssDialog.ui \
$$PRJ_DIR/VariationsDialog.ui
OTHER_FILES += \
../../../Source/Fractorium/Fractorium.aps \
../../../Source/Fractorium/Fractorium.rc
$$PRJ_DIR/Fractorium.aps \
$$PRJ_DIR/Fractorium.rc
RESOURCES += \
../../../Source/Fractorium/Fractorium.qrc
$$PRJ_DIR/Fractorium.qrc

View File

@ -1,15 +1,29 @@
VERSION = 0.1.4.9
VERSION = 0.9.9.2
# When this file is included:
# - $$(PWD) is ./Builds/QtCreator/
# - $(PWD) is the project folder, e.g. ./Builds/QtCreator/Ember/
# TODO: win32 install dirs?
unix|macx {
LIB_INSTALL_DIR = /usr/lib
BIN_INSTALL_DIR = /usr/bin
SHARE_INSTALL_DIR = /usr/share/fractorium
}
CONFIG(release, debug|release) {
CONFIG += warn_off
DESTDIR = ../../../Bin/release
CONFIG += warn_off
DESTDIR = $$(PWD)/../../../Bin/release
}
CONFIG(debug, debug|release) {
DESTDIR = ../../../Bin/debug
DESTDIR = $$(PWD)/../../../Bin/debug
}
QMAKE_POST_LINK += $$quote(cp --update ../../../Data/flam3-palettes.xml $${DESTDIR}$$escape_expand(\n\t))
SRC_DIR = $$(PWD)/../../../Source
SRC_COMMON_DIR = $$(PWD)/../../../Source/EmberCommon
ASSETS_DIR = $$(PWD)/../../../Data
macx {
LIBS += -framework OpenGL
@ -19,11 +33,12 @@ macx {
LIBS += -L/usr/local/lib
INCLUDEPATH += /usr/local/include
INCLUDEPATH += ../../../Deps
INCLUDEPATH += $$(PWD)/../../../Deps
QMAKE_MAC_SDK = macosx10.9
QMAKE_MAC_SDK = macosx10.11
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9
QMAKE_CXXFLAGS += -mmacosx-version-min=10.9 -arch x86_64
QMAKE_CXXFLAGS += -stdlib=libc++
} else {
CONFIG += precompile_header
@ -43,10 +58,10 @@ native {
QMAKE_CXXFLAGS += -march=k8
}
OBJECTS_DIR = $$DESTDIR/.obj
MOC_DIR = $$DESTDIR/.moc
RCC_DIR = $$DESTDIR/.qrc
UI_DIR = $$DESTDIR/.ui
OBJECTS_DIR = $$PWD/.obj
MOC_DIR = $$PWD/.moc
RCC_DIR = $$PWD/.qrc
UI_DIR = $$PWD/.ui
LIBS += -L/usr/lib -ljpeg
LIBS += -L/usr/lib -lpng
@ -61,9 +76,9 @@ INCLUDEPATH += /usr/include/GL
INCLUDEPATH += /usr/include/glm
INCLUDEPATH += /usr/include/tbb
INCLUDEPATH += /usr/include/libxml2
INCLUDEPATH += ../../../Source/Ember
INCLUDEPATH += ../../../Source/EmberCL
INCLUDEPATH += ../../../Source/EmberCommon
INCLUDEPATH += $$SRC_DIR/Ember
INCLUDEPATH += $$SRC_DIR/EmberCL
INCLUDEPATH += $$SRC_DIR/EmberCommon
QMAKE_CXXFLAGS_RELEASE += -O2
QMAKE_CXXFLAGS_RELEASE += -DNDEBUG

129
README.md
View File

@ -1,4 +1,129 @@
fractorium
Fractorium
==========
A Qt-based fractal flame editor which uses a C++ re-write of the flam3 algorithm named Ember and a GPU capable version named EmberCL which implements a portion of the cuburn algorithm in OpenCL.
A Qt-based fractal flame editor which uses a C++ re-write of the flam3 algorithm
named Ember and a GPU capable version named EmberCL which implements a portion
of the cuburn algorithm in OpenCL.
# Download
Windows: TODO
Linux: TODO
Mac OS/X (10.9+): TODO
# Building from git
## Windows
TODO
## Linux
Install `git` and clone the repository:
```
sudo apt-get install git
git clone https://github.com/mfeemster/fractorium
```
Install the dependencies:
```
sudo apt-get install g++ libdbus-1-dev libgl1-mesa-dev libgl-dev libglm-dev libjpeg-dev libpng12-dev libtbb-dev libxml2-dev qt5-default qt5-qmake qtbase5-dev libqt5opengl5-dev opencl-headers nvidia-opencl-dev
```
Compile the binary:
```
cd fractorium
qmake
make
```
Run the binary from the release folder:
```
cd Bin/release
./fractorium
```
`sudo make install` will install the files directly. `sudo make uninstall` is
also available.
You can also compile a `.deb` package to install locally. A few more tools will
be necessary:
```
sudo apt-get install bzr bzr-builddeb dh-make debhelper
```
A helper script is available, use `package-linux.sh` in the project root. It
will create `~/PPA/fractorium-VERSION` as a work folder, by default it builds a
signed source package.
For local use you probably want an unsigned binary package:
```
cd fractorium
./package-linux.sh --binary-only --unsigned
```
## Mac OS/X 10.9+
Install Xcode from the App Store. Install [homebrew](http://brew.sh/).
Install `git` and clone the repository:
```
brew install git
git clone https://github.com/mfeemster/fractorium
```
Install the dependencies:
```
brew install qt5 tbb glm dbus jpeg libpng glib libxml2
```
TODO: Confirm if `glib` and `libxml2` are actually needed.
Add the Qt `bin` folder to `PATH` to make `qmake` available. In
`~/.bash_profile` or `~/.bashrc`:
```
PATH=/usr/local/opt/qt5/bin:$PATH
export PATH
```
Compile the binary:
```
cd fractorium
qmake CONFIG-=app_bundle
make
```
Run the binary from the release folder:
```
cd Bin/release
./fractorium
```
# OpenCL tips
Nvidia, Ati, Intel.
## Windows
TODO
## Linux
TODO
## Mac OS/X
TODO

View File

@ -202,7 +202,7 @@ public:
static inline floatType LockedFrand(floatType fMin, floatType fMax)
{
m_CS.Enter();
floatType t = GlobalRand->Frand<floatType>(fMin, fMax);
floatType t = GlobalRand->template Frand<floatType>(fMin, fMax);
m_CS.Leave();
return t;
}
@ -230,7 +230,7 @@ public:
static inline floatType LockedFrand01()
{
m_CS.Enter();
floatType t = GlobalRand->Frand01<floatType>();
floatType t = GlobalRand->template Frand01<floatType>();
m_CS.Leave();
return t;
}
@ -258,7 +258,7 @@ public:
static inline floatType LockedFrand11()
{
m_CS.Enter();
floatType t = GlobalRand->Frand11<floatType>();
floatType t = GlobalRand->template Frand11<floatType>();
m_CS.Leave();
return t;
}
@ -281,7 +281,7 @@ public:
static inline floatType LockedGoldenBit()
{
m_CS.Enter();
floatType t = GlobalRand->GoldenBit<floatType>();
floatType t = GlobalRand->template GoldenBit<floatType>();
m_CS.Leave();
return t;
}

View File

@ -77,8 +77,22 @@ FractoriumEmberController<T>::FractoriumEmberController(Fractorium* fractorium)
m_PreviewRenderer = unique_ptr<EmberNs::Renderer<T, float>>(new EmberNs::Renderer<T, float>());
//Initial combo change event to fill the palette table will be called automatically later.
if (!InitPaletteList(QCoreApplication::applicationDirPath().toLocal8Bit().data()))
throw "No palettes found, exiting.";
// Look hard for a palette.
// TODO
// QStandardPaths::AppConfigLocation -- errors out, not a member.
// QStandardPaths::DataLocation -- how to parse this? It should include "/usr/share/fractorium" on Linux.
if ( ! (InitPaletteList(QDir::currentPath().toLocal8Bit().data()) ||
InitPaletteList(QDir::homePath().toLocal8Bit().data()) ||
InitPaletteList(QCoreApplication::applicationDirPath().toLocal8Bit().data()) ||
InitPaletteList(QString("/usr/local/share/fractorium").toLocal8Bit().data()) ||
InitPaletteList(QString("/usr/share/fractorium").toLocal8Bit().data())) )
{
// TODO better error dialog
throw "No palettes found, exiting.";
}
BackgroundChanged(QColor(0, 0, 0));//Default to black.
ClearUndo();

23
debian/changelog vendored Normal file
View File

@ -0,0 +1,23 @@
fractorium (0.9.9.2b-0ubuntu1) vivid; urgency=low
* now it's all qmake
-- Gambhiro Bhikkhu <gambhiro.bhikkhu.85@gmail.com> Sat, 05 Dec 2015 20:04:20 +0000
fractorium (0.9.9.2a-0ubuntu1) vivid; urgency=low
* also install dark theme, build only amd64 for now
-- Gambhiro Bhikkhu <gambhiro.bhikkhu.85@gmail.com> Thu, 03 Dec 2015 10:40:53 +0000
fractorium (0.9.9.2-0ubuntu2) vivid; urgency=low
* libc6-dev for i386 build
-- Gambhiro Bhikkhu <gambhiro.bhikkhu.85@gmail.com> Thu, 03 Dec 2015 10:06:40 +0000
fractorium (0.9.9.2-0ubuntu1) vivid; urgency=low
* Initial release
-- Gambhiro Bhikkhu <gambhiro.bhikkhu.85@gmail.com> Tue, 01 Dec 2015 18:23:34 +0000

1
debian/compat vendored Normal file
View File

@ -0,0 +1 @@
9

20
debian/control vendored Normal file
View File

@ -0,0 +1,20 @@
Source: fractorium
Section: graphics
Priority: optional
Maintainer: Gambhiro Bhikkhu <gambhiro.bhikkhu.85@gmail.com>
Build-Depends: debhelper (>= 9), g++ (>= 4.9), libdbus-1-dev, libgl1-mesa-dev, libgl-dev, libglm-dev, libjpeg-dev, libpng12-dev, libtbb-dev, libxml2-dev, qt5-default, qt5-qmake, qtbase5-dev, libqt5opengl5-dev, opencl-headers, nvidia-opencl-dev
Standards-Version: 3.9.5
Homepage: http://mfeemster.deviantart.com/
Vcs-Git: https://github.com/mfeemster/fractorium
Vcs-Browser: https://github.com/mfeemster/fractorium
Package: fractorium
Architecture: amd64
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: A Qt-based fractal flame editor
A Qt-based fractal flame editor which uses a C++ re-write of the flam3
algorithm named Ember and a GPU capable version named EmberCL which implements
a portion of the cuburn algorithm in OpenCL.
.
The interface is very similar to Apophysis, with most of the popular variations
implemented.

41
debian/copyright vendored Normal file
View File

@ -0,0 +1,41 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: fractorium
Source: https://github.com/mfeemster/fractorium
Files: *
Copyright: 2015 Matt Feemster <matt.feemster@gmail.com>
License: GPL-2+
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
Files: debian/*
Copyright: 2015 Gambhiro Bhikkhu <gambhiro.bhikkhu.85@gmail.com>
License: GPL-2+
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".

1
debian/docs vendored Normal file
View File

@ -0,0 +1 @@
README.md

32
debian/rules vendored Executable file
View File

@ -0,0 +1,32 @@
#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#DH_VERBOSE = 1
# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk
# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
# main packaging script based on dh7 syntax
%:
dh $@
# debmake generated override targets
# This is example for Cmake (See http://bugs.debian.org/641051 )
#override_dh_auto_configure:
# dh_auto_configure -- \
# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (quilt)

5
main.pro Normal file
View File

@ -0,0 +1,5 @@
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += Builds/QtCreator/Ember Builds/QtCreator/EmberCL Builds/QtCreator/EmberAnimate Builds/QtCreator/EmberGenome Builds/QtCreator/EmberRender Builds/QtCreator/Fractorium

128
package-linux.sh Executable file
View File

@ -0,0 +1,128 @@
#!/bin/bash
USAGE="`basename $0`
Run this script from the project root.
Without options, the default is to build a signed source package for uploading
to a Launchpad PPA.
Options:
-h --help
--binary-only
--source-only
--source-and-binary
--signed
--unsigned"
# version for the debian package
VERSION=0.9.9.2b
PROJECT=fractorium
PROJECT_ROOT=$PWD
PPA_DIR="$HOME/PPA/$PROJECT-$VERSION"
TAR_NAME="$PROJECT-$VERSION.tar.gz"
if [ ! -d '.git' -o ! -f 'main.pro' ]; then
echo "Run `basename $0` from the project root."
exit 2
fi
# Set defaults.
OPT_BUILD_BINARY=0
OPT_BUILD_SOURCE=1
OPT_SIGNED=1
while [ $# -gt 0 ]; do
case "$1" in
--binary-only) OPT_BUILD_SOURCE=0
OPT_BUILD_BINARY=1
;;
--source-only) OPT_BUILD_SOURCE=1
OPT_BUILD_BINARY=0
;;
--source-and-binary) OPT_BUILD_SOURCE=1
OPT_BUILD_BINARY=1
;;
--signed) OPT_SIGNED=1
;;
--unsigned) OPT_SIGNED=0
;;
-h|--help) echo "$USAGE"
exit 0;;
esac
shift
done
tarversion=$(tar --version | head -1 | sed -e 's/tar (GNU tar) \+\([0-9\.]\+\)$/\1/; s/[^0-9]//g; s/^\(.{3}\).*$/\1/;')
if [[ "$tarversion" -lt "128" ]]; then
echo "Tar >= 1.28 is required. Download the .deb from https://launchpad.net/ubuntu/+source/tar/ and install manually."
exit 2
fi
if [ ! -d "$PPA_DIR" ]; then
mkdir -p "$PPA_DIR"
else
echo -n "PPA work folder already exists: $PPA_DIR
Move this folder aside or remove it.
"
exit 2
fi
# tar 1.28 required for --exclude-vcs-ignores
# FIXME: somehow it didn't ignore the 'Bin' folder.
tar --exclude='package-linux.sh' \
--exclude='Bin' \
--exclude-vcs \
--exclude-vcs-ignores \
--exclude-backups \
-czf "$PPA_DIR/$TAR_NAME" .
[ $? -ne 0 ] && echo "Tar command failed." && exit 2
# TODO: find the option to specify single binary, so the question can be skipped.
cd "$PPA_DIR" &&\
bzr dh-make $PROJECT $VERSION $TAR_NAME &&\
cd fractorium/debian &&\
rm *.ex *.EX README.Debian README.source &&\
cd ..
[ $? -ne 0 ] && echo "bzr dh-make command failed." && exit 2
bzr add . &&\
bzr commit -m "Debian package $VERSION"
[ $? -ne 0 ] && echo "bzr command failed." && exit 2
# Build a source package.
# Launchpad only needs a signed source package. It will build its own binary on
# the servers.
if [ $OPT_BUILD_SOURCE -eq 1 ]; then
if [ $OPT_SIGNED -eq 1 ]; then
bzr builddeb -- -S
else
bzr builddeb -- -S -us -uc
fi
fi
[ $? -ne 0 ] && echo "bzr builddeb for source package failed." && exit 2
# Build an binary package.
if [ $OPT_BUILD_BINARY -eq 1 ]; then
if [ $OPT_SIGNED -eq 1 ]; then
bzr builddeb -- -b
else
bzr builddeb -- -b -us -uc
fi
fi
[ $? -ne 0 ] && echo "bzr builddeb for source package failed." && exit 2