mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-01-22 05:30:06 -05:00
5cdfe0b6b9
--User changes -Add many tooltips to help clarify functionality. -Select multiple flames in library for del/move. Still only one allowed to be set as the current. -Show checkbox for current flame. Remember this is not necessarily what's selected. -User can now drag a square to select xforms, which keeps in sync with checkboxes. -Remove --nframes from command line. Replace with new params: --loopframes, --interpframes, --interploops. -Add two new options to EmberGenome: --cwloops --cwinterploops to specify whether rotation should go clockwise instead of the default counter clockwise. -Add these to Fractorium as checkboxes. -Apply All now also works for toggling animate flag on xforms. -Options dialog now allows user to set whether double click toggles spinners, or right click does. --Bug fixes -Selecting final and non-final xforms, and then dragging the non-final did not drag the final with it. -Selecting all xforms when a final was present, then deleting crashed the program. -Remove support for ppm files in the command line programs, it's an outdated format. -Switching between SP and DP kept reapplying the palette adjustments. --Code changes -Move build system to Visual Studio 2015 and Qt 5.6. -SSE used during addition of points to the histogram. -Remove last remnants of old flam3 C code and replace with C++. -Remove unused code involving tbb::task_group. -Make settings object a global shared_ptr singleton, so it doesn't have to be passed around.
292 lines
6.9 KiB
C++
292 lines
6.9 KiB
C++
#pragma once
|
|
|
|
#include "FractoriumPch.h"
|
|
|
|
/// <summary>
|
|
/// FractoriumSettings class.
|
|
/// </summary>
|
|
|
|
#define EARLYCLIP "render/earlyclip"
|
|
#define YAXISUP "render/yaxisup"
|
|
#define TRANSPARENCY "render/transparency"
|
|
#define OPENCL "render/opencl"
|
|
#define DOUBLEPRECISION "render/dp64"
|
|
#define CONTUPDATE "render/continuousupdate"
|
|
#define SHOWALLXFORMS "render/dragshowallxforms"
|
|
#define TOGGLETYPE "render/toggletype"
|
|
#define DEVICES "render/devices"
|
|
#define THREADCOUNT "render/threadcount"
|
|
#define CPUDEFILTER "render/cpudefilter"
|
|
#define OPENCLDEFILTER "render/opencldefilter"
|
|
#define CPUSUBBATCH "render/cpusubbatch"
|
|
#define OPENCLSUBBATCH "render/openclsubbatch"
|
|
#define RANDOMCOUNT "render/randomcount"
|
|
|
|
#define STAGGER "sequence/stagger"
|
|
#define STAGGERMAX "sequence/staggermax"
|
|
#define FRAMESPERROT "sequence/framesperrot"
|
|
#define FRAMESPERROTMAX "sequence/framesperrotmax"
|
|
#define ROTATIONS "sequence/rotations"
|
|
#define ROTATIONSMAX "sequence/rotationsmax"
|
|
#define BLENDFRAMES "sequence/blendframes"
|
|
#define BLENDFRAMESMAX "sequence/blendframesmax"
|
|
|
|
#define VARFILTERSUM "varfilter/sumcheckbox"
|
|
#define VARFILTERASSIGN "varfilter/assigncheckbox"
|
|
#define VARFILTERPPSUM "varfilter/ppsumcheckbox"
|
|
#define VARFILTERPPASSIGN "varfilter/ppassigncheckbox"
|
|
#define VARFILTERSDC "varfilter/dccheckbox"
|
|
#define VARFILTERSTATE "varfilter/statecheckbox"
|
|
#define VARFILTERPARAM "varfilter/paramcheckbox"
|
|
#define VARFILTERNONPARAM "varfilter/nonparamcheckbox"
|
|
|
|
#define FINALEARLYCLIP "finalrender/earlyclip"
|
|
#define FINALYAXISUP "finalrender/finalyaxisup"
|
|
#define FINALTRANSPARENCY "finalrender/transparency"
|
|
#define FINALOPENCL "finalrender/opencl"
|
|
#define FINALDOUBLEPRECISION "finalrender/dp64"
|
|
#define FINALSAVEXML "finalrender/savexml"
|
|
#define FINALDOALL "finalrender/doall"
|
|
#define FINALDOSEQUENCE "finalrender/dosequence"
|
|
#define FINALKEEPASPECT "finalrender/keepaspect"
|
|
#define FINALSCALE "finalrender/scale"
|
|
#define FINALEXT "finalrender/ext"
|
|
#define FINALDEVICES "finalrender/devices"
|
|
#define FINALTHREADCOUNT "finalrender/threadcount"
|
|
#define FINALTHREADPRIORITY "finalrender/threadpriority"
|
|
#define FINALQUALITY "finalrender/quality"
|
|
#define FINALTEMPORALSAMPLES "finalrender/temporalsamples"
|
|
#define FINALSUPERSAMPLE "finalrender/supersample"
|
|
#define FINALSTRIPS "finalrender/strips"
|
|
|
|
#define XMLWIDTH "xml/width"
|
|
#define XMLHEIGHT "xml/height"
|
|
#define XMLTEMPORALSAMPLES "xml/temporalsamples"
|
|
#define XMLQUALITY "xml/quality"
|
|
#define XMLSUPERSAMPLE "xml/supersample"
|
|
|
|
#define OPENFOLDER "path/open"
|
|
#define SAVEFOLDER "path/save"
|
|
|
|
#define OPENXMLEXT "file/openxmlext"
|
|
#define SAVEXMLEXT "file/savexmlext"
|
|
#define OPENIMAGEEXT "file/openimageext"
|
|
#define SAVEIMAGEEXT "file/saveimageext"
|
|
#define AUTOUNIQUE "file/autounique"
|
|
|
|
#define IDENTITYID "identity/id"
|
|
#define IDENTITYURL "identity/url"
|
|
#define IDENTITYNICK "identity/nick"
|
|
|
|
#define UIVARIATIONS "ui/variations"
|
|
|
|
#define STYLETHEME "style/theme"
|
|
|
|
/// <summary>
|
|
/// Class for preserving various program options between
|
|
/// runs of Fractorium. Each of these generally corresponds
|
|
/// to items in the options dialog and the final render dialog.
|
|
/// </summary>
|
|
class FractoriumSettings : public QSettings, public Singleton<FractoriumSettings>
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
SINGLETON_DERIVED_IMPL(FractoriumSettings);
|
|
void EnsureDefaults();
|
|
|
|
bool EarlyClip();
|
|
void EarlyClip(bool b);
|
|
|
|
bool YAxisUp();
|
|
void YAxisUp(bool b);
|
|
|
|
bool Transparency();
|
|
void Transparency(bool b);
|
|
|
|
bool OpenCL();
|
|
void OpenCL(bool b);
|
|
|
|
bool Double();
|
|
void Double(bool b);
|
|
|
|
bool ShowAllXforms();
|
|
void ShowAllXforms(bool b);
|
|
|
|
bool ToggleType();
|
|
void ToggleType(bool b);
|
|
|
|
bool ContinuousUpdate();
|
|
void ContinuousUpdate(bool b);
|
|
|
|
QList<QVariant> Devices();
|
|
void Devices(const QList<QVariant>& devices);
|
|
|
|
uint ThreadCount();
|
|
void ThreadCount(uint i);
|
|
|
|
bool CpuDEFilter();
|
|
void CpuDEFilter(bool b);
|
|
|
|
bool OpenCLDEFilter();
|
|
void OpenCLDEFilter(bool b);
|
|
|
|
uint CpuSubBatch();
|
|
void CpuSubBatch(uint i);
|
|
|
|
uint OpenCLSubBatch();
|
|
void OpenCLSubBatch(uint i);
|
|
|
|
uint RandomCount();
|
|
void RandomCount(uint i);
|
|
|
|
double Stagger();
|
|
void Stagger(double i);
|
|
|
|
double StaggerMax();
|
|
void StaggerMax(double i);
|
|
|
|
uint FramesPerRot();
|
|
void FramesPerRot(uint i);
|
|
|
|
uint FramesPerRotMax();
|
|
void FramesPerRotMax(uint i);
|
|
|
|
uint Rotations();
|
|
void Rotations(double d);
|
|
|
|
uint RotationsMax();
|
|
void RotationsMax(double d);
|
|
|
|
uint BlendFrames();
|
|
void BlendFrames(uint i);
|
|
|
|
uint BlendFramesMax();
|
|
void BlendFramesMax(uint i);
|
|
|
|
int VarFilterSum();
|
|
void VarFilterSum(int i);
|
|
|
|
int VarFilterAssign();
|
|
void VarFilterAssign(int i);
|
|
|
|
int VarFilterPpsum();
|
|
void VarFilterPpsum(int i);
|
|
|
|
int VarFilterPpassign();
|
|
void VarFilterPpassign(int i);
|
|
|
|
int VarFilterSdc();
|
|
void VarFilterSdc(int i);
|
|
|
|
int VarFilterState();
|
|
void VarFilterState(int i);
|
|
|
|
int VarFilterParam();
|
|
void VarFilterParam(int i);
|
|
|
|
int VarFilterNonparam();
|
|
void VarFilterNonparam(int i);
|
|
|
|
bool FinalEarlyClip();
|
|
void FinalEarlyClip(bool b);
|
|
|
|
bool FinalYAxisUp();
|
|
void FinalYAxisUp(bool b);
|
|
|
|
bool FinalTransparency();
|
|
void FinalTransparency(bool b);
|
|
|
|
bool FinalOpenCL();
|
|
void FinalOpenCL(bool b);
|
|
|
|
bool FinalDouble();
|
|
void FinalDouble(bool b);
|
|
|
|
bool FinalSaveXml();
|
|
void FinalSaveXml(bool b);
|
|
|
|
bool FinalDoAll();
|
|
void FinalDoAll(bool b);
|
|
|
|
bool FinalDoSequence();
|
|
void FinalDoSequence(bool b);
|
|
|
|
bool FinalKeepAspect();
|
|
void FinalKeepAspect(bool b);
|
|
|
|
uint FinalScale();
|
|
void FinalScale(uint i);
|
|
|
|
QString FinalExt();
|
|
void FinalExt(const QString& s);
|
|
|
|
QList<QVariant> FinalDevices();
|
|
void FinalDevices(const QList<QVariant>& devices);
|
|
|
|
uint FinalThreadCount();
|
|
void FinalThreadCount(uint i);
|
|
|
|
int FinalThreadPriority();
|
|
void FinalThreadPriority(int b);
|
|
|
|
uint FinalQuality();
|
|
void FinalQuality(uint i);
|
|
|
|
uint FinalTemporalSamples();
|
|
void FinalTemporalSamples(uint i);
|
|
|
|
uint FinalSupersample();
|
|
void FinalSupersample(uint i);
|
|
|
|
size_t FinalStrips();
|
|
void FinalStrips(size_t i);
|
|
|
|
uint XmlTemporalSamples();
|
|
void XmlTemporalSamples(uint i);
|
|
|
|
uint XmlQuality();
|
|
void XmlQuality(uint i);
|
|
|
|
uint XmlSupersample();
|
|
void XmlSupersample(uint i);
|
|
|
|
QString OpenFolder();
|
|
void OpenFolder(const QString& s);
|
|
|
|
QString SaveFolder();
|
|
void SaveFolder(const QString& s);
|
|
|
|
QString OpenXmlExt();
|
|
void OpenXmlExt(const QString& s);
|
|
|
|
QString SaveXmlExt();
|
|
void SaveXmlExt(const QString& s);
|
|
|
|
QString OpenImageExt();
|
|
void OpenImageExt(const QString& s);
|
|
|
|
QString SaveImageExt();
|
|
void SaveImageExt(const QString& s);
|
|
|
|
bool SaveAutoUnique();
|
|
void SaveAutoUnique(bool b);
|
|
|
|
QString Id();
|
|
void Id(const QString& s);
|
|
|
|
QString Url();
|
|
void Url(const QString& s);
|
|
|
|
QString Nick();
|
|
void Nick(const QString& s);
|
|
|
|
QMap<QString, QVariant> Variations();
|
|
void Variations(const QMap<QString, QVariant>& m);
|
|
|
|
QString Theme();
|
|
void Theme(const QString& s);
|
|
|
|
private:
|
|
FractoriumSettings();
|
|
};
|