-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.
-Change how the PositiveYUp option is actually handled to make things more compatible with Apophysis. depending on the value of that option:
--Moving an affine up or down will mean a positive or negative value.
--Locally, the display of the affine will be flipped.
--Bug fixes
-Fix waffle.
-Add new style sheet called uranium that is reminiscent of the old Winamp color scheme of the same name.
-All for keyboard presses to edit affines.
--Q: rotate counter clockwise.
--E: rotate clockwise.
--W: move up.
--S: move down.
--A: move left.
--D: move right.
--G: shrink.
--H: grow.
--Hold shift to decrease amount, control to increase amount.
-Change some menu shortcuts to accommodate these new affine editing shortcuts.
-Random xaos now just provides values of either 0 or 1. Hold control to get the old behavior.
--Bug fixes
-Waffle variation was broken in OpenCL.
-Fix up Miche's work on allowing a small subset of parameters to be copied from the main window to the final render dialog when doing save/render again.
-Returning to main window after closing the final render dialog wouldn't restart the renderer.
--Code changes
-Recreate the final render dialog each time it's shown.
-Fix variations: blob2 (broken on CPU), epispiral, hole.
-Fix reading variations from Apophysis: supershape.
-Bump render was broken.
--Code changes
-Flip precalc sina/cosa and apply everywhere by flipping the usage. Flam3 had these reversed and it made the code confusing to read.
-Allow for saving EXR as full 31-bit float per component per pixel.
-Allow for saving the output from the final render dialog as a different image format without starting the rendering process over.
--Code changes:
-Make StripsRender() handle memsetting the final output image so calling code no longer has to.
-Make FinalRenderEmberController<T>::SaveCurrentRender() return the path that the image was actually saved to.
-Allow the user to resume a finished render in the final render dialog with a higher quality. This only applies to rendering a single image with no strips.
-Make clear xaos apply to all when Apply All is checked.
-Fix some potential OpenCL compilation bugs on circlecrop, circlecrop2, oscilloscope2, Truchet_hex_crop.
-Prevent the minus key from changing the current xform when being pressed in a textbox.
--Code changes
-Cleanup some casting in depth_blur, depth_blur2.
-Fix xform selection logic to prevent selecting hidden pre and post xforms.
-Remove the "Current" visibility option for pre/post affines. Instead just have "Selected" and "All". If none are selected, show current.
-Fix xform selection logic to prevent selecting hidden pre and post xforms.
-Add hex_modulus.
--Bug fixes
-starblur was wrong.
--Code changes
-Optimize Truchet_hex_crop, Truchet_hex_fill.
-Cleanup Truchet_inv.
-Add new file Variations08.h, and move Gnarly and inkdrop there.
-Undo list length increased from 128 to 512.
--Code changes
-auguer doesn't need Zeps().
-Additional check on undo list length when adding in certain circumstances.
-Add gnarly variation.
--Bug fixes
-Fix reading of post variations in .chaos files.
-Make selection of points on color curves control apply only to the current selection as specified by the radio buttons below.
--Code changes
-Use std::complex<T> type in some variations' CPU code.
-Dragging library items to a new position was not properly resetting the current flame pointer, so subsequent edits would unintentionally overwrite different flames.
-Add new variations waves22, waves23, waves42, waves3 and waves4 from user tatasz.
-Add new stylesheet called lightdark.qss which gives a more modern look to the dark theme. Started by Michel Mastriani (triptychaos).
--Included in the qmake and Wix installers.
--Code changes
-Add a new C# project that attempts to convert Apophysis plugins to Fractorium style Variation classes. It's not entirely perfect, but gets most of the job done much more quickly than doing so manually.
-Remove unused OpenCL functions from variations: elliptic, poincare, mask, bMod, bSwirl, bTransform, bCollide, farblur, popcorn2_3D, falloff, falloff2, falloff3, crackle2, waves2b, hypercrop, depth_gaussian2, depth_sine, depth_sine2, dust, asteria, vibration, vibration2, arctanh, smartshape, squares, starblur2, Truchet,.
-Add code in EmberTester to automatically detect such unused functions.
-Clear all color curves when clicking Reset while holding down Ctrl.
-Interpolate color curves when generating a sequence.
--Bug fixes
-Undo a change made last year which gave the wrong color index for final xforms when generating a sequence.
--Code changes
-No longer assume palettes are 256 elements. Can now read longer palettes.
-Ensure OpenCL images always get written when created.
-Clear all color curves when clicking Reset while holding down Ctrl.
--Code changes
-No longer assume palettes are 256 elements. Can now read and write longer palettes.
-Ensure OpenCL images always get written when created.