Commit Graph

34 Commits

Author SHA1 Message Date
Person
a0a205edd8 --User changes
-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.
2024-03-16 10:15:51 -06:00
Michel Mastriani
43055efdd4 .DS_Store banished! 2023-07-18 22:56:58 -03:00
Person
6b641d233d Fix build. 2023-04-26 08:25:16 -06:00
Person
1dfbd4eff2 --User changes
-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.
2023-04-25 17:59:54 -06:00
Person
f787c4f58a --User changes
-Add a new option to EmberAnimate --ignore-existing which makes it skip rendering a frame if the files from all of the requested extensions for that frame already exist.

--Code changes
 -Migrate to VS2022 and no longer use a version specific folder for the VS solution and project files. It is now under a version agnostic folder called Solution.
2022-08-18 10:29:04 -06:00
Person
c72c40a204 --Code changes
-Upgrade openexr to version 3.1.3
2021-11-16 22:56:33 -07:00
Person
39414b2263 --Bug fixes
-Fix possible OpenCL bugs in cubic3D, cubicLattice3D, dc_cube, falloff, falloff2, falloff3, waffle.

--Code changes
 -Upgrade to Visual Studio 2019.
2020-04-11 20:07:12 -07:00
Person
1bc9ded7ac --Code changes
-Update dependencies build script to use the latest version of openexr and other libraries.
 -Update windows platform version.
2018-09-17 19:54:26 -07:00
Person
26c558a2f5 --User changes
-Give tabs a height of 4px in the qss files. Looks a little large on 4k screens, but just right on HD screens which are much more common.
 -Allow for styling of zero and non-zero variation tree nodes via qss.
 -Allow for toggling whether to interpolate between colors in the palette editor, or to do hard cuts between colors.
 -Allow for adjusting spinner values with the + = or up arrow keys to increase, and - _ or down arrow keys to decrease.
 -Allow for responding to global presses of + = and - _ to cycle up or down to specify which xform is set as the current one.
 -Allow for adding "layers" via xaos which will add a user-specified number of xforms, and set certain xaos values to 0 or 1.
 -Add a new menu item under the Edit menu to copy the OpenCL iteration kernel source to the clipboard.
 -Show text on the status bar which indicates that an OpenCL kernel compilation is taking place.
 -Show xform name on xform combo box when expanded. Adjust size to fit all names.
 -Draw post affine circles using dashed lines.
 -Prevent QSS dialog from styling its editor, which makes it easier to see text when creating styles which have custom colors for text boxes.

--Bug fixes
 -Fix up some table layouts which seemed to have regressed/decayed over time for reasons unknown.
 -Using undo/redo would create a new flame in the library every time.
 -Solo was not being preserved when using undo/redo.

--Code changes
 -Make the solo flag be a part of the flame data now.
 -Fix some tabification in the OpenCL code for EllipticVariation.
 -Fix tabification in the varState code for OpenCL.
 -Add an event called m_CompileBegun to RendererCL that is called right before an OpenCL compile is begun.
 --This required making RendererCLBase not a pure virtual base class. Member functions just return defaults.
 -Filter key presses on main window to only process the third one. This is due to Qt triggering three events for every key press.
 -The palette preview table was installing an event filter for seemingly no reason. Remove it.
 -Mark certain virtual functions as override in SpinBox and DoubleSpinBox.
2018-07-30 21:39:41 -07:00
Person
244d2f5dc2 --Bug fixes
-Allow group dragging and floating of dock widgets.
 --Note this has a bug where if tabls are grouped while floating, the tab position is placed on the bottom. It restores to the top when dropping on a dock location. I've filed a bug at qt.io
 -Make some tables auto size to their contents because some text appeared obscured on Linux.
 -The size of the xforms and palette tabs were preventing the main window from being resized to a small size on lower resolution monitors when docked. So rework scroll areas, minimum sizes and layouts to allow for a smaller main window.
2017-12-15 21:05:58 -08:00
Person
f28edf3217 --Code changes
-Add a benchmarking suite which includes a Powershell script and sample flames.
2017-12-04 20:56:43 -08:00
Person
fcd060976c --User changes
-Support 4k monitors, and in general, properly scale any monitor that is not HD.
 -Allow for a spatial filter of radius zero, which means do not use a spatial filter.
 -Add new variations: concentric, cpow3, helicoid, helix, rand_cubes, sphereblur.
 -Use a new method for computing elliptic which is more precise. Developed by Discord user Claude.
 -Remove the 8 variation per xform limitation on the GPU.
 -Allow for loading the last flame file on startup, rather than randoms.
 -Use two different default quality values in the interactive renderer, one each for CPU and GPU.
 -Creating linked xforms was using non-standard behavior. Make it match Apo and also support creating multiple linked xforms at once.

--Bug fixes
 -No variations in an xform used to have the same behavior as a single linear variation with weight 1. While sensible, this breaks backward compatibility. No variations now sets the output point to zeroes.
 -Prevent crashing the program when adjusting a value on the main window while a final render is in progress.
 -The xaos table was inverted.

--Code changes
 -Convert projects to Visual Studio 2017.
 -Change bad vals from +- 1e10 to +-1e20.
 -Reintroduce the symmetry tag in xforms for legacy support in programs that do not use color_speed.
 -Compiler will not let us use default values in templated member functions anymore.
2017-11-26 17:27:00 -08:00
Person
de613404de Features:
--Add support for Exr files which use 32-bit floats for each RGBA channel. Seems to come out too washed out.
--Allow for clearing an individual color curve.
--Allow for saving multiple image types in EmberRender and EmberAnimate. All writes are threaded.
--Remove --bpc command line argument. Add format png16 as a replacement.
--Remove --enable_jpg_comments and --enable_png_comments command line arguments, and replace them with --enable_comments which applies to jpg, png and exr.
--Add menu items to variations and affine spinners which allow for easy entry of specific numeric values like pi.
--Make final render dialog be wider rather than so tall.

Bug fixes:
--Fix some OpenCL compile errors on Mac.
--Remove ability to save bitmap files on all platforms but Windows.

Code changes:
--New dependency on OpenEXR.
--Allow Curves class to interact with objects of a different template type.
--Make m_Curves member of Ember always use float as template type.
--Set the length of the curves array to always be 2^17 which should offer enough precision with new 32-bit float pixel types.
--Set pixel types to always be 32-bit float. This results in a major reduction of code in the final accumulation part of Renderer.h/cpp.
--Remove corresponding code from RendererCL and FinalAccumOpenCLKernelCreator.
--Remove Transparency, NumChannels and BytesPerPixel setters from Renderer.h/cpp.
--Add new global functions to format final image buffers and place all alpha calculation and scaling code in them.
--Blending is no longer needed in OpenGLWidget because of the new pixel type.
--Make new class, AffineDoubleSpinBox.
--Attempt to make file save dialog code work the same on all OSes.
--Remove some unused functions.
2017-07-22 13:43:35 -07:00
Person
5352dc55bf .gitignore 2017-03-15 17:49:18 -07:00
Person
00189531fc --Bug fixes
-Forgot to commit icons.
2017-02-26 08:05:14 -08:00
Person
8a4127d5d7 --User changes
-Add a palette editor.
 -Add support for reading .ugr/.gradient/.gradients palette files.
 -Allow toggling on spinners whose minimum value is not zero.
 -Allow toggling display of image, affines and grid.
 -Add new variations: cylinder2, circlesplit, tile_log, truchet_fill, waves2_radial.

--Bug fixes
 -cpow2 was wrong.
 -Palettes with rapid changes in color would produce slightly different outputs from Apo/Chaotica. This was due to a long standing bug from flam3.
 -Use exec() on Apple and show() on all other OSes for dialog boxes.
 -Trying to render a sequence with no frames would crash.
 -Selecting multiple xforms and rotating them would produce the wrong rotation.
 -Better handling when parsing flames using different encoding, such as unicode and UTF-8.
 -Switching between SP/DP didn't reselect the selected flame in the Library tab.

--Code changes
 -Make all types concerning palettes be floats, including PaletteTableWidgetItem.
 -PaletteTableWidgetItem is no longer templated because all palettes are float.
 -Include the source colors for user created gradients.
 -Change parallel_for() calls to work with very old versions of TBB which are lingering on some systems.
 -Split conditional out of accumulation loop on the CPU for better performance.
 -Vectorize summing when doing density filter for better performance.
 -Make all usage of palettes be of type float, double is pointless.
 -Allow palettes to reside in multiple folders, while ensuring only one of each name is added.
 -Refactor some palette path searching code.
 -Make ReadFile() throw and catch an exception if the file operation fails.
 -A little extra safety in foci and foci3D with a call to Zeps().
 -Cast to (real_t) in the OpenCL string for the w variation, which was having trouble compiling on Mac.
 -Fixing missing comma between paths in InitPaletteList().
 -Move Xml and PaletteList classes into cpp to shorten build times when working on them.
 -Remove default param values for IterOpenCLKernelCreator<T>::SharedDataIndexDefines in cpp file.
 -Change more NULL to nullptr.
2017-02-26 00:02:21 -08:00
Person
5cdfe0b6b9 1.0.0.2 12/05/2016
--User changes
 -Add many tooltips to help clarify functionality.
 -Select multiple flames in library for del/move. Still only one allowed to be set as the current.
 -Show checkbox for current flame. Remember this is not necessarily what's selected.
 -User can now drag a square to select xforms, which keeps in sync with checkboxes.
 -Remove --nframes from command line. Replace with new params: --loopframes, --interpframes, --interploops.
 -Add two new options to EmberGenome: --cwloops --cwinterploops to specify whether rotation should go clockwise instead of the default counter clockwise.
 -Add these to Fractorium as checkboxes.
 -Apply All now also works for toggling animate flag on xforms.
 -Options dialog now allows user to set whether double click toggles spinners, or right click does.

--Bug fixes
 -Selecting final and non-final xforms, and then dragging the non-final did not drag the final with it.
 -Selecting all xforms when a final was present, then deleting crashed the program.
 -Remove support for ppm files in the command line programs, it's an outdated format.
 -Switching between SP and DP kept reapplying the palette adjustments.

--Code changes
 -Move build system to Visual Studio 2015 and Qt 5.6.
 -SSE used during addition of points to the histogram.
 -Remove last remnants of old flam3 C code and replace with C++.
 -Remove unused code involving tbb::task_group.
 -Make settings object a global shared_ptr singleton, so it doesn't have to be passed around.
2016-12-05 19:04:33 -08:00
mfeemster
c43e3708b6 Merge 2015-12-31 13:51:55 -08:00
mfeemster
6ba16888e3 --User changes
-Add new variations: crackle, dc_perlin.
 -Make default palette interp mode be linear instead of step.
 -Make summary tab the selected one in the Info tab.
 -Allow for highlight power of up to 10. It was previously limited to 2.

--Bug fixes
 -Direct color calculations were wrong.
 -Flattening was not applied to final xform.
 -Fix "pure virtual function call" error on shutdown.

--Code changes
 -Allow for array precalc params in variations by adding a size member to the ParamWithName class.
  -In IterOpenCLKernelCreator, memcpy precalc params instead of a direct assign since they can now be of variable length.
 -Add new file VarFuncs to consolidate some functions that are common to multiple variations. This also contains texture data for crackle and dc_perlin.
  -Place OpenCL versions of these functions in the FunctionMapper class in the EmberCL project.
 -Add new Singleton class that uses CRTP, is thread safe, and deletes after the last reference goes away. This fixes the usual "delete after main()" problem with singletons that use the static local function variable pattern.
 -Began saving files with AStyle autoformatter turned on. This will eventually touch all files as they are worked on.
 -Add missing backslash to CUDA include and library paths for builds on Nvidia systems.
 -Add missing gl.h include for Windows.
 -Remove glew include paths from Fractorium, it's not used.
 -Remove any Nvidia specific #defines and build targets, they are no longer needed with OpenCL 1.2.
 -Fix bad paths on linux build.
 -General cleanup.
2015-12-31 13:41:59 -08:00
Gambhiro
eaf802c562 opengl-headers 1.2 in vendor folder 2015-12-16 14:54:22 +00:00
Gambhiro
f9923a673c local symlinks 2015-12-15 18:24:46 +00:00
Gambhiro
85ba79c861 don't ignore flam3-palettes.xml 2015-12-15 16:19:03 +00:00
Gambhiro
fa5e6188ee squashed linux packaging commits
Squashed commit of the following:

commit e7261977580bfd08d08717c27732eb0b0f534bb2
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 8 11:25:00 2015 +0000

    build signed source package

commit e652848b5e2d5dadfe1143282af204c13f8db418
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Sun Dec 6 12:51:42 2015 +0000

    linux packaging helper script

commit 0c8bf8fcea9d62692c3e973a277c9014b9ef636b
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Sat Dec 5 21:38:37 2015 +0000

    changelog

commit d6c6815d3a59779e03119c0546f01c778188c918
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Sat Dec 5 21:37:32 2015 +0000

    now it's all qmake

commit c37673a0d747134766bf9a1c3a898bbb9e416ed6
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Sat Dec 5 08:46:27 2015 +0000

    don't symlink in manual makefile

commit 2593da2401cbb5b83ea8ec188a3450f52595186e
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Thu Dec 3 16:53:31 2015 +0000

    postfix the version with an 'a'

commit 03d4bdde55d428354d8a8ebe4827ff191162bcb1
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Thu Dec 3 14:55:33 2015 +0000

    use MAKE_OPTS env if set

commit 6f7847c7c0e3eb32ec14e60736a4e2a7b5175a7c
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Thu Dec 3 14:36:21 2015 +0000

    also install dark theme, build only amd64 for now

commit e36d863b3101d4440816e08b9af704e89316d2e9
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 18:01:42 2015 +0000

    rules.dh7

commit 0e35f2ddf3b70eaf0040fcac6453d79c1a9571c8
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 17:57:57 2015 +0000

    deps

commit 492b4ae7aa41374bf89cd8accf82d5ab0283a5f9
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 10:40:04 2015 +0000

    typo

commit 6f0ed09a37849323f220d9aa50ac7c6bd3d411cb
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 10:37:55 2015 +0000

    deps and version

commit 82f2fd07b6703d5699926c297dee25a59111acb9
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 09:50:00 2015 +0000

    rev logic

commit e5d33b62236e0b33653fa79d82274e157cb26bc2
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 09:17:50 2015 +0000

    create bin and libdir

commit 84153860e6861a43ffc0f1073d462f2452f7e7c4
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 08:48:23 2015 +0000

    support prefix

commit a5da29a15a15fc130ef1147ed495d86238e7a2f3
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Wed Dec 2 08:45:52 2015 +0000

    support DESTDIR

commit da1be8b940fb3e51632ed4a35b6afe7defe17848
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 21:06:01 2015 +0000

    rev clean logic

commit 738c78a93b159d27fc5c00361bb621cd864ac224
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 20:59:34 2015 +0000

    better make clean

commit 2bf382412e573cd93c8a744b374196d5ea59c218
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 20:44:48 2015 +0000

    debian folder

commit af420ef5d98744315fa526f0d072197b00b1af28
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 18:18:51 2015 +0000

    make clean ./Bin too

commit 6d0243a10dac725251ea566ad717ff9b4fd0eea2
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 17:56:31 2015 +0000

    lowercase

commit 41b4eaef6d9adbbb8ec00a9a15c20498f300924e
Author: Gambhiro <gambhiro.bhikkhu.85@gmail.com>
Date:   Tue Dec 1 17:34:21 2015 +0000

    configure and Makefile
2015-12-08 11:49:19 +00:00
Simon Detheridge
fd5e177df7 Fix output directory in qt projects to be relative to the repository
Conflicts:
	Builds/QtCreator/build_all.sh
2015-07-29 12:42:22 +01:00
Simon Detheridge
301b6ee452 Add .gch directories to gitignore 2015-01-26 20:17:29 +00:00
Simon Detheridge
8bafa3ddbc Add linux/osx intermediate files to gitignore 2015-01-26 17:18:29 +00:00
Simon Detheridge
397af59c12 Exclude osx build output in gitignore 2015-01-14 09:31:10 +00:00
mfeemster
d1196f4205 0.4.1.2 Beta 08/05/2014
--User Changes
Add --yaxisup and --supersample options for command line programs.

--Bug Fixes
Make certain options available only to the command line programs in
which they make sense. Most were good, some were misplaced.

--Code Changes
Include pure render time as part of stats.
Output iters/sec measurement in EmberRender and EmberAnimate.
2014-08-05 21:50:52 -07:00
mfeemster
b3c313b5c5 0.4.0.9 Beta 07/29/2014
0.4.0.9 Beta 07/29/2014
--Bug Fixes
Final render dialog didn't create the renderer properly on first run
when more than one platform was present.
2014-07-29 08:06:09 -07:00
mfeemster
88a325a5cd 0.4.0.9 Beta 07/27/2014
0.4.0.9 Beta 07/27/2014
--User Changes
Properly set tab order on all controls.
Calculate and report iters/second in the final render dialog.
Immediately draw yellow dot on xform mouse down on previously unselected
xform.

--Bug Fixes
Fix GlynnSim1, GlynnSim2, GlynnSim3 and juliaNab by ensuring the first
argument to pow() is >= 0.
Ensure OpenCL platform and device combo boxes in the final render dialog
expand as needed.

--Code Changes
Make VariationTreeSpinbox take its parent VariationTreeWidgetItem as a
constructor argument. This makes SetupVariationTree() and
VariationSpinBoxValueChanged() more efficient.
Make Interference2 and ho use fabs().
2014-07-27 22:25:38 -07:00
mfeemster
a5d69c75a2 0.4.0.8 Beta 07/26/2014
0.4.0.8 Beta 07/26/2014
--Bug Fixes
Fix falloff, falloff2, falloff3.
2014-07-26 17:26:15 -07:00
mfeemster
ed8850e3db Scroll panels for certain areas of the UI
0.4.0.6 Beta 07/22/2014
--User Changes
Place certain areas of the UI on scroll panels so they are not obscured
on low resolution monitors.
2014-07-22 07:53:36 -07:00
mfeemster
280473c8a0 Add scrollbars
Add scrollbars to various UI areas to be more friendly to low resolution
monitors. This works well down to vertical resolutions of 960. Below
that, things will get scrunched.
2014-07-20 17:16:23 -07:00
mfeemster
e3b207c562 Numerous fixes
0.4.0.5 Beta 07/18/2014
--User Changes
Allow for vibrancy values > 1.
Add flatten and unflatten menu items.
Automatically flatten like Apophysis does.
Add plugin and new_linear tags to Xml to be compatible with Apophysis.

--Bug Fixes
Fix blur, blur3d, bubble, cropn, cross, curl, curl3d, epispiral, ho,
julia3d, julia3dz, loonie, mirror_x, mirror_y, mirror_z, rotate_x,
sinusoidal, spherical, spherical3d, stripes.
Unique filename on final render was completely broken.
Two severe OpenCL bugs. Random seeds were biased and fusing was being
reset too often leading to results that differ from the CPU.
Subtle, but sometimes severe bug in the setup of the xaos weights.
Use properly defined epsilon by getting the value from
std::numeric_limits, rather than hard coding 1e-6 or 1e-10.
Omit incorrect usage of epsilon everywhere. It should not be
automatically added to denominators. Rather, it should only be used if
the denominator is zero.
Force final render progress bars to 100 on completion. Sometimes they
didn't seem to make it there.
Make variation name and params comparisons be case insensitive.

--Code Changes
Make ForEach and FindIf wrappers around std::for_each and std::find_if.
2014-07-18 23:33:18 -07:00