Add the ability to click the right mouse button and drag to adjust values in spinners.
Filling the palette controls will now also select the proper palette filename (if not empty) in the combo box.
Allow for toggling row and column of affine tables.
--Bug fixes
Fix tab tool tips again.
Fix palette list switching.
--Code changes
Palettes now keep the filename they originated from as a member.
Refactor table row and column cell toggling into their own functions.
Do not force random select on palette combo index change.
Add the ability to set the current xform by pressing F1 - F32.
Add the ability to toggle an entire row or column of xaos values.
--Bug fixes
Prevent xform index flickering whenever changing the number of xforms.
--Code changes
Remove ForEach() wrappers and replace with range based for loops with auto.
Replace every regular for loop with a range based one where applicable. Note this doesn't work everywhere.
Make event filter application wide.
Add parameter to FillXforms() to specify the index to select, default 0.
Rename some scroll areas and layouts to names that make sense, rather than their designer defaults.
Add the ability to apply operations to a selection of xforms, rather than just the current one.
Update tool tips accordingly.
--Bug fixes
Fix NAN in equalized weight calculation when all weights are set to 0.
--Code changes
Clean up strange nested usage of Update([&]()) calls when changing xform color index via either the spinner or scroll bar. Made no sense.
Make ISAAC RandBit() use RandByte() to be slightly more efficient.
Put FillXforms() in the controller where it belongs, rather than the main window class.
Add UpdateXform() function to the controller to handle applying operations to multiple xforms.
Remove the word "Current" out of most xform related functions because they now operate on whatever is selected.
Properly use Update() for various xform operations whereas before it was manually calling UpdateRender().
Also properly use Update() in places where it was erroneously using UpdateXform() for things that did not involve xforms.
Block signals in FillXaosTable().
Add new file named FractoriumXformsSelect.cpp to handle new xform selection code.
Make xaos display a matrix rather than a single column. This will be moved out into its own tab since it's no longer xform dependent, but that will be in a future commit.
Remove xaos from/to button since it's no longer applicable.
Add test function to Isaac to return just one random byte. Might be used in the future.
Remove unnecessary resize() in Interpolate().
These are from Simon Detheridge's PR:
Set file name padding in EmberRender and
EmberAnimate based on the log10() of how many images are getting rendered, rather than hardcoding it to 5.
Use non-locale-imbued stream for writing filename in EmberAnimate.
Properly cast immediate float value used with pow() in density filter kernel.
Previously, 'os' had imbue(std::locale("")) called on it, which resulted in a localised stream that inserted commas into numbers.
This is inconvenient, as it inserts commas into the output filename for frame numbers of 1,000 or higher
Carry logic from this fix to writing Xform Xmls as well.
Motion was not supported on some Xform fields as it was originally copied from flam3. Allow it on all but xaos now.
Fix clamping range for m_ColorSpeed at the end of ApplyMotion() to match the values we accept elsewhere.
-If we change OpenCLWrapper to capture build log errors, we don't need to manually concat them in RendererCL because the overridden ErrorReport() function already concatenates the errors from both classes.
-Do not define T in OpenCL programs. We already have real_t to handle this.
-Do keep the casting to real_t. However this should not be necessary because there is a command line option to do this automatically which we already use: -cl-single-precision-constant. The only reason we do this is because the Apple OpenCL compiler does not follow the standard and obviously ignores this option. Absolutely awful.
-Fix a few improper casts in the CircleTrans1 and GlynnSim1 variations.
-Add an automated OpenCL program build tester to EmberTester, as well as a cast checker.
Add Curves.h, and CurvesGraphicsView.h/cpp to support bezier color curves.
Add Curves member to Ember.
Add curves capability to EmberCL.
Remove some unused variables in the kernel created in RendererCL::CreateFinalAccumKernelString().
Use glm namespace for vec classes if GLM_VERSION >= 96, else use glm::detail.
As a result of using glm namespace, all instances of min and max had to be qualified with std::
Split ComputeCamera into that and ComputeQuality().
Reduce the amount of ComputeCamera() and MakeDmap() calls on each incremental iter that doesn't use temporal samples.
Fix clamping bug with DE filter widths.
Provide functions to return the kernels from RendererCL to assist with diagnostics and debugging.
Prevent extra newline in EmberRender when only rendering a single image.
Add the ability to delete an ember at a given index in EmberFile.
Allow deleting/focusing ember in library tab with delete and enter keys.
Reorder some code in Fractorium.h to match the tabs order.
Add and call ClearFinalImages() to clear buffers in controller to fix bug where previous CPU render would be shown for a split second when switching from OpenCL back to CPU.
Refactor ember library pointer syncing to a function SyncPointers().
Add the ability to save ember Xmls to an unique automatically generated name after the first time the user has specified a name.
This avoids 'ambiguous call' errors on mac.
It's probably not necessary to have changed every single instance, only the ones in functions with multiple signatures. However, it was easier and safer to do this automatically than manually.
-Remove unneeded glFinish() call in GLWidget.
-Remove unneeded AMD_OS_WIN preprocessor in several projects.
-Define NVIDIA in all projects that use the NvidiaRelease build and depend on OpenCL.
The command is intended to write XML output to stdout for piping into an xml file, but adds diagnostic information and warnings to the output, generating invalid XML.
--User changes
Thread image writing in EmberAnimate and when doing animation sequence in final render dialog.
Add total time output for verbose mode in EmberAnimate to match EmberRender.
--Bug Fixes
Fix incorrect iters ran/requested percentage in EmberAnimate to match EmberRender.
Fix motion blur being disabled when doing animations in final render dialog.
Allow for boolean command line options which default to true to be set to false.
--Code Changes
Minor changes to enable a Mac build.
Double the memory required for the final output buffer in RendererBase::MemoryRequired() when threading image writing.
Reuse same buffer for RgbaToRgb() in EmberRender and EmberAnimate.
Only resize in RgbaToRgb() if the two vectors are not the same.
Add a final output buffer ping-ponging mechanism to facilitate threaded writes in controllers.