-Add Ctrl+g shortcut for generating a sequence.
--Bug fixes
-Fix indendation for variations because of type icon.
-Fix bug when duplicating flame where the new flame wasn't being properly selected.
-Fix bug where clearing a flame was changing size and quality when it shouldn't have.
-Fix bug where reading an Xml palette was failing on linux.
--Code changes
-No longer pad string with null terminator in ReadFile() because std::string already does it.
-Users can now specify animation params on a per flame basis.
--These get saved with the flame file.
-Allow for rotating xforms around the world origin during animation.
-Make the Clear Flame menu item be more comprehensive in how it clears a flame out.
--Bug fixes
-Fix an extremely rare possible memory leak when using motion during animation, which is never used in Fractorium.
-Do not skip to the current flame index, or attach a prefix in the Final Render Dialog when rendering an animation sequence.
--Code changes
-Place all animation params in Ember.
-Show image index in the library and sequence trees.
-Add progress bar showing when preview renders are complete.
-Automatically show animation preview when sequence generation is done.
-Add the ability in the final render dialog to start a render within a sequence from a given point, rather than always having to start from the beginning.
--Allow using the image index as its name rather than the file name.
-Update various tooltips.
-Increase precision of affine and xaos spinners.
-Increase precision of fields written in Xml files to 8.
--Bug fixes
-When rendering on the CPU, if the number of threads didn't divide evenly into the number of rows, it would leave a blank spot on the last few rows.
-Fix numerous parsing bugs when reading .chaos files.
-Added compatibility fixes and/or optimizations to the following variations: asteria, bcircle, bcollide, bipolar, blob2, btransform, cell, circlecrop, circlecrop2, collideoscope, cpow2, cropn, cross, curl, depth_ngon2, depth_sine2, edisc, eRotate, escher, fan2, hex_rand, hypershift, hypershift2, hypertile1, julia, julian, julian2, juliaq, juliascope, lazyjess, log, loonie2, murl, murl2, npolar, oscilloscope2, perspective, phoenix_julia, sphericaln, squish, starblur, starblur2, truchet, truchet_glyph, waffle, wavesn.
-Add a progress bar for sequence previews.
--Bug fixes
-Attempt to prevent crash when dragging in a new file while the previews from the current file are still rendering.
-Remove the Type field from the variations tree and instead just put the type indicator icon next to the variation name.
-Double clicking to toggle variation parameter spinners now resets the value to the default if there is one, else it uses zero. If it is already using the default, it is toggled to 0.
-Add a new button to toggle xaos on and off.
-When duplicating a flame, insert it immediately after the one being duplicated instead of at the end of the file.
-When switching between flames in a file, keep the same xform index selected rather than resetting it to the first xform each time.
-Create a threaded writer for the final render and EmberAnimate so the rendering process does not get delayed by file saving which may take a long time.
-Remove warning which said "Frames per rot cannot be greater than one while Rotations is zero" when generating a sequence.
-Add the Circle_Rand variation from Chaotica.
-Add tool tips to clarify the following items:
--Auto Unique Filenames checkbox in the options dialog.
--Xaos table headers.
--Bug fixes
-Generating sequences using the following variations would be done incorrectly: circletrans1, collideoscope, crob, curlsp, glynnsim1, glynnsim2, hypercrop, julian, julian, mobiusn, nblur, waves2, wavesn.
-Adding/removing nodes from the color curve had accidentally been disabled.
-The applied xaos weight table was not showing normalized weight values.
-Changing the size of a flame was not observing the Apply To All checkbox.
-Do not clamp the Rotate field to +/-180, because this causes the rotation to switch from CW to CCW during sequence generation. Instead, leave it exactly as the user entered it so the rotations proceed in the same direction.
-Fix stylesheets.
-Make various fields in the options window be resettable via double click.
-Get stylesheets working properly on Windows and Linux with Qt6.
-Set default style to Fusion.
--Code changes
-Get build and deployment scripts working with latest versions of Qt6, AppImage, and various library dependencies.
-Add two new macros so it would build with the latest gcc: SINGLETON_DERIVED_DECL_T and SINGLETON_DERIVED_IMPL_T.
-Small changes to opencl.hpp.
-Center progress bars on Linux.
-Proper sizing of vertical header on the xaos visualization table on Linux.
-Add new preset dimensions to the right click menu of the width and height fields in the editor.
-Change QSS stylesheets to properly handle tabs.
-Make tabs rectangular by default. For some reason, they had always been triangular.
--Bug fixes
-Incremental rendering times in the editor were wrong.
--Code changes
-Migrate to Qt6. There is probably more work to be done here.
-Migrate to VS2022.
-Migrate to Wix 4 installer.
-Change installer to install to program files for all users.
-Fix many VS2022 code analysis warnings.
-No longer use byte typedef, because std::byte is now a type. Revert all back to unsigned char.
-Upgrade OpenCL headers to version 3.0 and keep locally now rather than trying to look for system files.
-No longer link to Nvidia or AMD specific OpenCL libraries. Use the generic installer located at OCL_ROOT too.
-Add the ability to change OpenCL grid dimensions. This was attempted for investigating possible performance improvments, but made no difference.
This has not been verified on Linux or Mac yet.
-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.
-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.
-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.