-Numbering of rendered files was wrong.
-Truchet_hex_fill was not compiling with some newer Nvidia drivers.
--Code changes
-Update Wix installer to use VS 2019.
--User changes
-Allow users to set the Exp value when using the Exp temporal filter type.
-Set the default temporal filter type to be Box, which does not alter the palette values at all during animation. This is done to avoid confusion when using Gaussian or Exp which can produce darkened images.
--Bug fixes
-Sending a sequence to the final render dialog when the keyframes had non zero rotate and center Y values would produce off center animations when rendered.
-Temporal filters were being unnecessarily recreated many times when rendering or generating sequences.
-Exp filter was always treated like a Box filter.
--Code changes
-Add a new member function SaveCurrentAsXml(QString filename = "") to the controllers which is only used for testing.
-Modernize some C++ code.
-Allow for specifying linear or smooth interpolation when generating a sequence in the Library tab (was formerly hardcoded to smooth). This has the effect of exposing the --unsmoother option used in EmberGenome in the GUI.
-Clarify tool tips of the sequence interpolation fields in the animation group on the Flame tab.
-Change caption of the Bounds tab to be Bounds & Log.
-Fix improper usage of rand() in cpow2, cpow3, hypertile1, hypertile3D1, hypertile3D2, juliac, juliaq.
-Fix program crashing during density filtering on some Nvidia cards.
-hypertile3D1 was wrong.
-Parsing phoenix_julia when coming from Apophysis was wrong.
-Density filtering was freezing on certain Nvidia cards.
--Code changes
-Optimize juliac, npolar.
-Add a new function Crand() which behaves like the legacy C rand() which returns an integer between 0 and 32766, inclusive.
-Use RandBit() in some places.
-Remove Zeps() from vignette, it's not needed.
-Restructure OpenCL code for density filtering such that it does not hang after being compiled on some Nvidia cards, such as the gtx 1660. Remove barriers from conditionals where possible.
-Add support for Chaotica files which specify xform weight as "Base weight" instead of "base_weight".
-Fix bug where Fractorium would crash when a new file was dragged in while previews were still rendering.
--This was done by changing the TreeItemChanged() events in the library tab use a direct connection rather than a queued connection.
--This obviated the need for QCoreApplication::processEvents() calls in the library tree code.
-Fix bug where renaming a flame within a file, then tabbing away did not commit the name change.
--Code changes
-Clean up some warnings about const variables in the latest version of Visual Studio 2019.
-Upgrade installer to latest update of Visual Studio 2019.
-ETA time was wrong with incremental final renders after waiting for a period of time.
--Code changes
-Small change to prevent parsing error when using tbb on some systems.
-Remove the unused field m_RotCenterY from Ember.
-Make a #define for fma() testing, but seems to make no difference.
-Optimize some of the OpenCL iteration kernel generation code.
-Possible fix to an OpenCL compilation bug when using blur curve on AMD on Mac.
-Entering xaos cells will always select the entire cell to make editing easier.
-Add radio buttons on the xaos tab to specify how pasting or duplicating xforms should preserve xaos.
--Bug fixes
-The left header column in the xaos visualization table had somehow disappeared.
--Code changes
-DoubleSpinBox now has a boolean which specifies whether it clears its selection on enter. Default true.
-Make AddXformsWithXaos() be a static member of FractoriumEmberController for quicker build times.
-Add new exmaple flames to package_linux.sh
-Allow dragging in folders which will be recursively traversed for flame files.
-Allow for adjusting scale via keyboard with the < and > keys.
-Show the count of opened flames on the header of the library tree.
--Bug fixes
-Attempt to preserve xaos when pasting xforms.
--Code changes
-Default flam3 compatibility mode to true.
-EmberAnimate.exe was using 1-based indexing for filenames, but Fractorium and all of the documentation was using 0-based indexing. Make all use 0-based indexing.
-Add backward compatibility option for the following variations: cos, cosh, cot, coth, csc, csch, sec, sech, sin, sinh, tan, tanh.
-Add the ability to re-order variations by dragging them in the Info tab.
-Fix crash on palette editor when opening it with certain palette files in a particular order.
-An xform with only a post variation in it might have showed up wrong.
-The xforms combo box was obscuring the name of the xforms by not being wide enough.
-Make variation state preservation be a little bit more correct in OpenCL.
--Code changes
-Make all iterators on the CPU use a temporary point.
-Add new keyboard shortcuts:
--P/Shift+P toggles visibility of pre/post xforms.
--L/Shift+L toggles visibility of all/selected pre/post xforms.
--Bug fixes
-Xforms were erroneously able to edit via key pressed when not shown.
-Optimization and correction for hexaplay3D and hexnix3D.
-Major optimization on the GPU for flames which only have one xform, by skipping all random xform selection code.
-Changes to how xaos is "preserved" when adding new xforms, copying xforms and duplicating xforms.
--Duplicating xforms when no xaos is present in the flame now maintains not using xaos, and keeps all values as one.
--Duplicating xforms when xaos is present, will result in xaos rows and columns that are the same as the xforms being duplicated, with the new row and column area having values of 1.
--Duplicating xforms when xaos is present, while Control is pressed, will result in xaos rows and columns that have values of 0, with the new row and column area having values of 1.
---Copying xforms has the same behavior as duplicating with Control pressed.
--Bug fixes
-hexaplay3D, hexnix3D and post_smartcrop were wrong on the GPU because they are the rare variations which preserve state between iterations.
-Changing the sub batch size would improperly wrong the wrong number of iterations.
--Code changes
-Some functions in Affine2D made const.
-Change in the index at which points and variation state are preserved between kernel calls.
-Some arguments in some member functions of GLEmberController made const.
-Add new Blur Cuve field which controls how blurring increases when moving from the center out.
--Bug fixes
-Undo Y axis flipping from previous commit, it never worked and is not worth the effort.
--Code changes
-The new field is a member of Ember and is called m_BlurCurve, and the corresponding xml field is called "blur_curve".
-Duplicate xform will now only add the new xforms with xaos preserved if xaos is already being used in the flame. Otherwise, they'll just be added normally.
-This is a hybrid of the original behavior and the new behavior added a year or so ago.