diff --git a/Builds/MSVC/Installer/Product.wxs b/Builds/MSVC/Installer/Product.wxs index 59bba7f..7c9d8c4 100644 --- a/Builds/MSVC/Installer/Product.wxs +++ b/Builds/MSVC/Installer/Product.wxs @@ -1,6 +1,6 @@ - + @@ -13,7 +13,7 @@ - + ::epsilon()//Apoplugin.h uses -20, but it's more mathematically correct to do it this way. #define ISAAC_SIZE 4 diff --git a/Source/Ember/VariationList.h b/Source/Ember/VariationList.h index c993c94..0e2d71e 100644 --- a/Source/Ember/VariationList.h +++ b/Source/Ember/VariationList.h @@ -541,6 +541,11 @@ public: size_t PostSize() const { return m_PostVariations.size(); } size_t ParametricSize() const { return m_ParametricVariations.size(); } + const vector*>& AllVars() const { return m_Variations; } + const vector*>& RegVars() const { return m_RegVariations; } + const vector*>& PreVars() const { return m_PreVariations; } + const vector*>& PostVars() const { return m_PostVariations; } + private: /// /// Make a dyncamically allocated copy of a variation and assign it a specified weight. diff --git a/Source/EmberAnimate/EmberAnimate.rc b/Source/EmberAnimate/EmberAnimate.rc index 5f65a42..11eb202 100644 --- a/Source/EmberAnimate/EmberAnimate.rc +++ b/Source/EmberAnimate/EmberAnimate.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,9,9,3 - PRODUCTVERSION 0,9,9,3 + FILEVERSION 0,9,9,4 + PRODUCTVERSION 0,9,9,4 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Renders fractal flames as animations with motion blur" - VALUE "FileVersion", "0.9.9.3" + VALUE "FileVersion", "0.9.9.4" VALUE "InternalName", "EmberAnimate.exe" VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2015, GPL v3" VALUE "OriginalFilename", "EmberAnimate.exe" VALUE "ProductName", "Ember Animate" - VALUE "ProductVersion", "0.9.9.3" + VALUE "ProductVersion", "0.9.9.4" END END BLOCK "VarFileInfo" diff --git a/Source/EmberCommon/EmberOptions.h b/Source/EmberCommon/EmberOptions.h index 2adaedd..fa29ba1 100644 --- a/Source/EmberCommon/EmberOptions.h +++ b/Source/EmberCommon/EmberOptions.h @@ -35,6 +35,10 @@ enum class eOptionIDs : et OPT_DUMP_ARGS, OPT_PROGRESS, OPT_DUMP_OPENCL_INFO, + OPT_ALL_VARS, + OPT_REG_VARS, + OPT_PRE_VARS, + OPT_POST_VARS, //Boolean args. OPT_OPENCL, @@ -306,6 +310,10 @@ public: INITBOOLOPTION(DumpArgs, Eob(eOptionUse::OPT_USE_ALL, eOptionIDs::OPT_DUMP_ARGS, _T("--dumpargs"), false, SO_NONE, "\t--dumpargs Print all arguments entered from either the command line or environment variables.\n")); INITBOOLOPTION(DoProgress, Eob(eOptionUse::OPT_USE_ALL, eOptionIDs::OPT_PROGRESS, _T("--progress"), false, SO_NONE, "\t--progress Display progress. This will slow down processing by about 10%%.\n")); INITBOOLOPTION(OpenCLInfo, Eob(eOptionUse::OPT_USE_ALL, eOptionIDs::OPT_DUMP_OPENCL_INFO, _T("--openclinfo"), false, SO_NONE, "\t--openclinfo Display platforms and devices for OpenCL.\n")); + INITBOOLOPTION(AllVars, Eob(eOptionUse::OPT_USE_GENOME, eOptionIDs::OPT_ALL_VARS, _T("--allvars"), false, SO_NONE, "\t--allvars Display the names of all supported variations.\n")); + INITBOOLOPTION(RegVars, Eob(eOptionUse::OPT_USE_GENOME, eOptionIDs::OPT_REG_VARS, _T("--regvars"), false, SO_NONE, "\t--regvars Display the names of all supported regular variations.\n")); + INITBOOLOPTION(PreVars, Eob(eOptionUse::OPT_USE_GENOME, eOptionIDs::OPT_PRE_VARS, _T("--prevars"), false, SO_NONE, "\t--prevars Display the names of all supported pre variations.\n")); + INITBOOLOPTION(PostVars, Eob(eOptionUse::OPT_USE_GENOME, eOptionIDs::OPT_POST_VARS, _T("--postvars"), false, SO_NONE, "\t--postvars Display the names of all supported post variations.\n")); //Execution bools. INITBOOLOPTION(EmberCL, Eob(eOptionUse::OPT_USE_ALL, eOptionIDs::OPT_OPENCL, _T("--opencl"), false, SO_NONE, "\t--opencl Use OpenCL renderer (EmberCL) for rendering [default: false].\n")); INITBOOLOPTION(EarlyClip, Eob(eOptionUse::OPT_USE_ALL, eOptionIDs::OPT_EARLYCLIP, _T("--earlyclip"), false, SO_NONE, "\t--earlyclip Perform clipping of RGB values before spatial filtering for better antialiasing and resizing [default: false].\n")); @@ -448,6 +456,10 @@ public: PARSEBOOLOPTION(eOptionIDs::OPT_DUMP_ARGS, DumpArgs); PARSEBOOLOPTION(eOptionIDs::OPT_PROGRESS, DoProgress); PARSEBOOLOPTION(eOptionIDs::OPT_DUMP_OPENCL_INFO, OpenCLInfo); + PARSEBOOLOPTION(eOptionIDs::OPT_ALL_VARS, AllVars); + PARSEBOOLOPTION(eOptionIDs::OPT_REG_VARS, RegVars); + PARSEBOOLOPTION(eOptionIDs::OPT_PRE_VARS, PreVars); + PARSEBOOLOPTION(eOptionIDs::OPT_POST_VARS, PostVars); PARSEBOOLOPTION(eOptionIDs::OPT_OPENCL, EmberCL); PARSEBOOLOPTION(eOptionIDs::OPT_EARLYCLIP, EarlyClip); PARSEBOOLOPTION(eOptionIDs::OPT_POS_Y_UP, YAxisUp); @@ -708,6 +720,10 @@ public: Eob DumpArgs; Eob DoProgress; Eob OpenCLInfo; + Eob AllVars; + Eob RegVars; + Eob PreVars; + Eob PostVars; Eob EmberCL;//Value bool. Eob EarlyClip; diff --git a/Source/EmberGenome/EmberGenome.cpp b/Source/EmberGenome/EmberGenome.cpp index 7b3b866..25c6191 100644 --- a/Source/EmberGenome/EmberGenome.cpp +++ b/Source/EmberGenome/EmberGenome.cpp @@ -64,6 +64,39 @@ bool EmberGenome(EmberOptions& opt) return true; } + if (opt.AllVars() || opt.RegVars() || opt.PreVars() || opt.PostVars()) + { + VariationList vl; + + if (opt.AllVars()) + { + auto& vars = vl.AllVars(); + + for (auto& v : vars) + cout << v->Name() << "\n"; + + return true; + } + else + { + vector*> vars; + + if (opt.RegVars()) + vars.insert(vars.end(), vl.RegVars().begin(), vl.RegVars().end()); + + if (opt.PreVars()) + vars.insert(vars.end(), vl.PreVars().begin(), vl.PreVars().end()); + + if (opt.PostVars()) + vars.insert(vars.end(), vl.PostVars().begin(), vl.PostVars().end()); + + for (auto& v : vars) + cout << v->Name() << "\n"; + } + + return true; + } + //Regular variables. Timing t; bool exactTimeMatch, randomMode, didColor, seqFlag; diff --git a/Source/EmberGenome/EmberGenome.rc b/Source/EmberGenome/EmberGenome.rc index 2699a12..0f610a8 100644 --- a/Source/EmberGenome/EmberGenome.rc +++ b/Source/EmberGenome/EmberGenome.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,9,9,3 - PRODUCTVERSION 0,9,9,3 + FILEVERSION 0,9,9,4 + PRODUCTVERSION 0,9,9,4 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Manipulates fractal flames parameter files" - VALUE "FileVersion", "0.9.9.3" + VALUE "FileVersion", "0.9.9.4" VALUE "InternalName", "EmberGenome.exe" VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2015, GPL v3" VALUE "OriginalFilename", "EmberGenome.exe" VALUE "ProductName", "Ember Genome" - VALUE "ProductVersion", "0.9.9.3" + VALUE "ProductVersion", "0.9.9.4" END END BLOCK "VarFileInfo" diff --git a/Source/EmberRender/EmberRender.rc b/Source/EmberRender/EmberRender.rc index 212060f..75d2198 100644 --- a/Source/EmberRender/EmberRender.rc +++ b/Source/EmberRender/EmberRender.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,9,9,3 - PRODUCTVERSION 0,9,9,3 + FILEVERSION 0,9,9,4 + PRODUCTVERSION 0,9,9,4 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Renders fractal flames as single images" - VALUE "FileVersion", "0.9.9.3" + VALUE "FileVersion", "0.9.9.4" VALUE "InternalName", "EmberRender.exe" VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2015, GPL v3" VALUE "OriginalFilename", "EmberRender.exe" VALUE "ProductName", "Ember Render" - VALUE "ProductVersion", "0.9.9.3" + VALUE "ProductVersion", "0.9.9.4" END END BLOCK "VarFileInfo" diff --git a/Source/Fractorium/AboutDialog.ui b/Source/Fractorium/AboutDialog.ui index fdb0917..e78207f 100644 --- a/Source/Fractorium/AboutDialog.ui +++ b/Source/Fractorium/AboutDialog.ui @@ -58,7 +58,7 @@ QFrame::NoFrame - <html><head/><body><p align="center"><br/>Fractorium 0.9.9.3 Beta</p><p align="center"><span style=" font-size:10pt;">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.</span></p><p align="center"><span style=" font-size:10pt;">Lead: Matt Feemster<br/>Contributors: Simon Detheridge</span></p></body></html> + <html><head/><body><p align="center"><br/>Fractorium 0.9.9.4 Beta</p><p align="center"><span style=" font-size:10pt;">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.</span></p><p align="center"><span style=" font-size:10pt;">Lead: Matt Feemster<br/>Contributors: Simon Detheridge</span></p></body></html> Qt::RichText diff --git a/Source/Fractorium/Fractorium.rc b/Source/Fractorium/Fractorium.rc index c7e6a4b..917fe5a 100644 Binary files a/Source/Fractorium/Fractorium.rc and b/Source/Fractorium/Fractorium.rc differ