Commit Graph

318 Commits

Author SHA1 Message Date
Person
f806ba745d --User changes
-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.
2020-01-16 20:22:41 -08:00
Person
6a14ef89e4 --Bug fixes
-Don't apply keyboard edits to affines when alt is pressed.
2020-01-15 06:07:18 -08:00
Person
ed35622928 --User changes
-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.
2020-01-14 20:08:27 -08:00
Michel Mastriani
d9d21a88b8 CurvesGraphicsView.cpp edited online with Bitbucket 2020-01-04 13:25:40 +00:00
Person
ba1e5ed922 --Code changes
-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.
2020-01-04 01:02:30 -08:00
Michel Mastriani
7479aaa95d Color&Filter 2020-01-02 15:04:32 -03:00
Michel Mastriani
9d1abfce15 Color&Filter 2020-01-02 15:02:57 -03:00
Michel Mastriani
6794b42a03 CurvesGraphicsView.cpp edited online with Bitbucket 2020-01-02 04:14:14 +00:00
Person
96d72004fc --Bug fixes
-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.
2019-12-30 21:12:10 -08:00
Person
7ced17a6b2 --Bug fixes
-Bump render was broken.
2019-12-29 13:59:38 -08:00
Person
0b0405382f --Bug fixes
-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.
2019-12-27 21:04:41 -08:00
Person
35d4eb3464 --User changes
-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.
2019-11-29 23:52:17 -08:00
Person
59605f10a8 --User changes
-Make the xform name field be a standard edit control so it's always editable.
2019-11-28 12:18:36 -08:00
Person
adf590209a --Bug fixes
-Properly detect maximization of final render dialog when on linux.
2019-11-17 00:25:41 -08:00
Person
74fea61ad2 --User changes
-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.
2019-11-08 21:44:57 -08:00
Person
1cafbb8837 --User changes
-Add entries for 1 and 101 in the affine rotation and scale combo boxes.
2019-06-30 20:44:07 -07:00
Person
afa6dea68a --Bug fixes
-Rapidly stopping and starting sequence preview generation would either freeze or crash the program.
2019-06-28 18:51:36 -07:00
Person
ee1d5eb44d --Bug fixes
-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.
2019-06-24 19:43:15 -07:00
Person
d234f635ea --Code changes
-Affine tab default selection.
2019-06-21 17:57:03 -07:00
Person
b0088e58bc --User changes
-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.
2019-06-21 17:51:20 -07:00
Person
d34e2ffa4a --User changes
-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.
2019-06-18 21:29:58 -07:00
Person
066420e2e2 Formatting 2019-06-14 15:45:32 -07:00
Michel Mastriani
7b613df986 Fixed Minus Key 2019-06-14 00:06:50 -03:00
Person
35ea85ad35 --User changes
-Formatting.
2019-06-11 19:25:21 -07:00
Michel Mastriani
65a69ccbea Fixed Grid and Solution for sensitive mouse 2019-06-11 22:30:20 -03:00
Person
1bb04d161d 1.0.0.16 Release 2019-06-03 18:24:05 -07:00
Person
39e99a7491 --Bug fixes:
-Spinboxes were able to be edited even when they were disabled.
2019-06-03 17:34:17 -07:00
Person
adfe554b10 --User changes
-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.
2019-06-02 09:35:56 -07:00
Person
255859678a --User changes
-Allow changes which do not trigger a full render to be added to the undo list.

--Code changes
 -Optimize hypershift2.
2019-05-30 19:16:23 -07:00
Person
c000c67d45 --User changes
-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.
2019-05-28 20:08:59 -07:00
Person
28ce868a9f --Code changes
-Formatting.
2019-05-21 16:28:37 -07:00
Michel Mastriani
96e8bcdb23 FractoriumPalette.cpp edited online with Bitbucket 2019-05-21 22:35:23 +00:00
Michel Mastriani
fcdfb0b300 Removed duplicated code 2019-05-21 19:15:45 -03:00
Michel Mastriani
9fdf512a1f Solving Linux-Gnome Palette Editor problem 2019-05-21 13:33:00 -03:00
Michel Mastriani
f29dda2ec0 Merged mfeemster/fractorium into master 2019-05-21 13:20:06 -03:00
Person
243be8d702 --Bug fixes
-Dragging library items to a new position was not properly resetting the current flame pointer, so subsequent edits would unintentionally overwrite different flames.
2019-05-20 18:24:32 -07:00
Person
142b597565 --Bug fixes
-Switching between SP/DP was resetting palette rotation.
2019-05-20 15:44:46 -07:00
Michel Mastriani
2d2d561e29 Solving Gnome Palette Editor problem 2019-05-19 18:10:56 -03:00
Person
4550f9dc87 --Bug fixes
-Right clicking when showing only current affines caused a crash.
2019-05-18 22:25:22 -07:00
Person
d8b3dd40d6 --Bug fixes
-Fix some recently changed calls to fma().

--Code changes
 -Update version to 1.0.0.16.
2019-05-16 20:56:05 -07:00
Person
e4a29f56cb --Bug fixes
-K2 adjustments were not being applied properly.
2019-05-13 18:15:18 -07:00
Person
b4ba6d6a82 --User changes
-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.
2019-05-06 19:29:27 -07:00
Person
5faa8aa5bd --Bug fixes
-Deleting a flame in the library tree was taking three tries.
2019-04-26 16:18:21 -07:00
Person
5f98be7336 --User changes
-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.
2019-04-25 22:34:09 -07:00
Person
77515aae73 --User changes
-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.
2019-04-23 19:50:42 -07:00
Person
5209ead086 --Code changes
-Change some menu capitalization to make the text easier on the eyes.
2019-04-14 23:46:45 -07:00
Person
90ec5b8246 --User changes:
-Show common folder locations such as documents, downloads, pictures in the sidebar in all file dialogs.
 -Warning message about exceeding memory in final render dialog now suggests strips as the solution to the problem.
 -Strips now has a tooltip explaining what it does.
 -Allow more digits in the spinners on the color section the flame tab.
 -Add manually adjustable size spinners in the final render dialog. Percentage scale and absolute size are fully synced.
 -Default prefix in final render is now the filename when doing animations (coming from sequence section of the library tab).
 -Changed the elliptic variation back to using a less precise version for float, and a more precise version for double. The last release had it always using double.
 -New applied xaos table that shows a read-only view of actual weights by taking the base xform weights and multiplying them by the xaos values.
 -New table in the xaos tab that gives a graphical representation of the probability that each xform is chosen, with and without xaos.
 -Add button to transpose the xaos rows and columns.
 -Add support for importing .chaos files from Chaotica.
 --Pasting back to Chaotica will work for most, but not all, variations due to incompatible parameter names in some.
 -Curves are now splines instead of Bezier. This adds compatibility with Chaotica, but breaks it for Apophysis. Xmls are still pastable, but the color curves will look different.
 --The curve editor on the palette tab can now add points by clicking on the lines and remove points by clicking on the points themselves, just like Chaotica.
 --Splines are saved in four new xml fields: overall_curve, red_curve, green_curve and blue_curve.
 -Allow for specifying the percentage of a sub batch each thread should iterate through per kernel call when running with OpenCL. This gives a roughly 1% performance increase due to having to make less kernel calls while iterating.
 --This field is present for interactive editing (where it's not very useful) and in the final render dialog.
 --On the command line, this is specified as --sbpctth for EmberRender and EmberAnimate.
 -Allow double clicking to toggle the supersample field in the flame tab between 1 and 2 for easily checking the effect of the field.
 -When showing affine values as polar coordinates, show angles normalized to 360 to match Chaotica.
 -Fuse Count spinner now toggles between 15 and 100 when double clicking for easily checking the effect of the field.
 -Added field for limiting the range in the x and y direction that the initial points are chosen from.
 -Added a field called K2 which is an alternative way to set brightness, ignored when zero.
 --This has no effect for many variations, but hs a noticeable effect for some.
 -Added new variations:
 arcsech
 arcsech2
 arcsinh
 arctanh
 asteria
 block
 bwraps_rand
 circlecrop2
 coth_spiral
 crackle2
 depth_blur
 depth_blur2
 depth_gaussian
 depth_gaussian2
 depth_ngon
 depth_ngon2
 depth_sine
 depth_sine2
 dragonfire
 dspherical
 dust
 excinis
 exp2
 flipx
 flowerdb
 foci_p
 gaussian
 glynnia2
 glynnsim4
 glynnsim5
 henon
 henon
 hex_rand
 hex_truchet
 hypershift
 lazyjess
 lens
 lozi
 lozi
 modulusx
 modulusy
 oscilloscope2
 point_symmetry
 pointsymmetry
 projective
 pulse
 rotate
 scry2
 shift
 smartshape
 spher
 squares
 starblur2
 swirl3
 swirl3r
 tanh_spiral
 target0
 target2
 tile_hlp
 truchet_glyph
 truchet_inv
 truchet_knot
 unicorngaloshen
 vibration
 vibration2
 --hex_truchet, hex_rand should always use double. They are extremely sensitive.

--Bug fixes:
 -Bounds sign was flipped for x coordinate of world space when center was not zero.
 -Right clicking and dragging spinner showed menu on mouse up, even if it was very far away.
 -Text boxes for size in final render dialog were hard to type in. Same bug as xform weight used to be so fix the same way.
 -Fix spelling to be plural in toggle color speed box.
 -Stop using the blank user palette to generate flames. Either put colored palettes in it, or exclude it from randoms.
 -Clicking the random palette button for a palette file with only one palette in it would freeze the program.
 -Clicking none scale in final render did not re-render the preview.
 -Use less precision on random xaos. No need for 12 decimal places.
 -The term sub batch is overloaded in the options dialog. Change the naming and tooltip of those settings for cpu and opencl.
 --Also made clear in the tooltip for the default opencl quality setting that the value is per device.
 -The arrows spinner in palette editor appears like a read-only label. Made it look like a spinner.
 -Fix border colors for various spin boxes and table headers in the style sheet. Requires reload.
 -Fix a bug in the bwraps variation which would produce different results than Chaotica and Apophysis.
 -Synth was allowed to be selected for random flame generation when using an Nvidia card but it shouldn't have been because Nvidia has a hard time compiling synth.
 -A casting bug in the OpenCL kernels for log scaling and density filtering was preventing successful compilations on Intel iGPUs. Fixed even though we don't support anything other than AMD and Nvidia.
 -Palette rotation (click and drag) position was not being reset when loading a new flame.
 -When the xform circles were hidden, opening and closing the options dialog would improperly reshow them.
 -Double click toggle was broken on integer spin boxes.
 -Fixed tab order of some controls.
 -Creating a palette from a jpg in the palette editor only produced a single color.
 --Needed to package imageformats/qjpeg.dll with the Windows installer.
 -The basic memory benchmark test flame was not really testing memory. Make it more spread out.
 -Remove the temporal samples field from the flame tab, it was never used because it's only an animation parameter which is specified in the final render dialog or on the command line with EmberAnimate.

--Code changes:
 -Add IsEmpty() to Palette to determine if a palette is all black.
 -Attempt to avoid selecting a blank palette in PaletteList::GetRandomPalette().
 -Add function ScanForChaosNodes() and some associated helper functions in XmlToEmber.
 -Make variation param name correction be case insensitive in XmlToEmber.
 -Report error when assigning a variation param value in XmlToEmber.
 -Add SubBatchPercentPerThread() method to RendererCL.
 -Override enterEvent() and leaveEvent() in DoubleSpinBox and SpinBox to prevent the context menu from showing up on right mouse up after already leaving the spinner.
 -Filtering the mouse wheel event in TableWidget no longer appears to be needed. It was probably an old Qt bug that has been fixed.
 -Gui/ember syncing code in the final render dialog needed to be reworked to accommodate absolute sizes.
2019-04-13 19:00:46 -07:00
Person
2089363bb0 1.0.0.14 Release
--Bug fixes
 -File saving was broken.

--Code changes
 -File saving and opening dialogs were shared between a single object which was causing trouble. Make them all use their own objects.
2018-10-20 23:08:20 -07:00
Person
f50226e52a 1.0.0.14 Release
--Bug fixes
 -File saving was broken.
2018-10-20 18:40:46 -07:00
Person
a0b658481a --User changes
-Disable Start button in final render dialog when Pause is clicked.

--Bug fixes
 -Rapidly changing spinner values was causing the OpenCL renderer to report a failure, when it was really just aborting.

--Code changes
 -Renderers never internally set abort to true due to a failure. Abort is only set to true by the calling code.
2018-10-05 19:50:38 -07:00
Person
c91866acc3 --User changes
-Add a button to swap the pre and post affine values for all selected xforms.

--Bug fixes
 -Remove the ability to change spinner values with +=-=, it was conflicting with other things and added no real value.
 -All file dialog opening in Linux would freeze. No longer using native file dialogs, they are broken.
 -Set default open path to the desktop if there is no settings file present, which will be the case on the first run.
 -Amphibole_Supergroup.ugr palette had an invalid character in two of the palette names.

--Code changes
 -Change some table header padding styles to work with new Qt. Qss reload is required.
 -Ensure the open folder path setting always has a valid string in it before opening a folder.
2018-09-30 14:20:02 -07:00
Person
2d27eecd5e --Code changes
-Upgrade to Qt 5.11.2
2018-09-29 13:28:03 -07:00
Person
585d0f99d5 --User changes
-Change the thickness of some of the lines used to draw the affine..
2018-09-25 19:12:48 -07:00
Person
5283250204 --User changes
-Use a green dot for the x axis and purple dot for the y axis when drawing affines to help distinguish them more easily.
2018-09-25 18:37:26 -07:00
Person
55a2c393cf --User changes
-Add new palettes from user Rubydeva.

--Bug fixes
 -Avoid an occasional divide by zero in the OpenCL renderer when using the interactive editor.

--Code changes
 -Use exact comparisons in IsID() and IsZero() in Affine2D.
 -When testing for bad point values while iterating, only test for NaN now.
 -For rendering with OpenCL on the command line and in the final render dialog, use an optimized kernel that does a direct assignment for any affines which are ID.
2018-09-21 22:42:18 -07:00
Person
5f3a97e825 --User changes
-Further work on the About box.
 --Change qss files to make the text box in the About box be the same color as the one in the style dialog, so the link text is easier to see.
 --This requires reloading the qss file.

--Bug fixes
 -Pre/post assign method was wrong for Sphereblur, Concentric, RandCubes and PixelFlow.

--Code changes
 -Make Hypershift2 use MwcNextRange() instead of MwcNext() %.
 -Add m_HasPre to Xform similar to m_HasPost, to skip application of the affine if it's the ID matrix (in this case just assign the input x and y points). This gives a 5% speedup.
2018-09-18 20:49:38 -07:00
Person
0a3d41de36 --User changes
-New look for the About dialog, it was growing too large before. More work to be done on it in a follow up commit.

--Bug fixes
 -Fix build with new glm, no longer uses type_int.hpp.
2018-09-17 22:16:12 -07:00
Person
15fdc860b8 --User changes
-Add buttons to copy and paste affine transforms.
 -Show xform names on the column headers of the xaos table.
 -Add a color-coded third column to the variations tree which shows any properties of each variation which are non-standard.
 -Draw a transparent circle over hovered xforms.
 -Change how xforms respond to dragging. Rotate only is now the default, and scale will only happen with shift.
 --Optionally do scale and rotate when holding shift, via a setting in the options dialog.

--Bug fixes
 -Snapping when dragging was wrong sometimes.
 -The program would very rarely crash on startup due to some values being in an uninitialized state.

--Code changes
 -Change almost every variation to use fma() in OpenCL when doing computations of the form a * b + c. This provides a slight speedup, mostly in double precision mode.
 -Also apply fma() to affine calcs.
 -Cleanup of OpenGL affine drawing code.
 -Separate the concept of hovering and selecting xforms.
2018-09-15 03:11:12 -07:00
Person
dee4304bf2 --User changes
-Attempt to preserve xaos when adding xforms. Note this is not an exact copy, but just a preservation of some values based on position.
 -Add some acceleration to the changing of spinner values when dragging the right mouse button to adjust.
 -Make the pivot be the center of the viewable area when doing drag/rotate/scale with the right mouse button.
 --Clamp minimum scale to 10
 --Draw a line from the mouse position to the pivot.
 -Keep a cache of the last added final xform with each flame so that it can be quickly added, removed, then added back for testing its effect.
 --This is not saved with the xml file and is solely for interactive editing.

--Bug fixes
 -File filtering in open and save dialogs were broken.
 -Right clicking on integer spin boxes was causing the context menu to pop up, when it should be supressed just like double spin boxes.
 -Deleting xforms was still broken.

--Code changes
 -Refactor the code for adding and pasting xforms into a single global static function called AddXformsWithXaos().
2018-08-10 18:06:04 -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
Yuju Lu
0deabd45b8 Merged in luyuju151/fractorium/out-master (pull request #5)
Small improvements on fractorium UI
2018-07-13 22:54:37 +00:00
luyuju151
d88d8bb2ea Let xform combo show the names of xforms 2018-07-13 23:34:20 +08:00
luyuju151
e58deb1194 Change the method that normalized weight text displayed from spinner box suffix to a Qlabel to prevent annoying interruption when typing weight. 2018-07-13 23:34:20 +08:00
luyuju151
8b2d5c9697 Make variation tree background colors themable. 2018-07-13 23:34:19 +08:00
Person
235381b4b9 --User changes
-Double clicking on width or height spinner resizes both, but scales to the one double clicked.

--Bug fixes
 -Show grid setting was not being preserved during program run, only on close.
 -Zooming with the mouse wheel was broken for images whose size is greater than the screen area.
2018-07-08 08:31:26 -07:00
Person
6ff199d1ef --User changes
-No longer constrain pitch, yaw or depth spinners to -180 - 180.

--Bug fixes
 -Properly set color index on padded xforms.
 -Adding a padding final xform included a linear variation with a weight of zero to not appear empty. Made it have a weight of 1.
 -Always write animate tag on final xform when saving to Xml.
 -Motion was being applied to the wrong flame in SheepTools::Edge(), so apply it to the correct one.
 -Prevent divide by zero when normalizing variation weights.
 -Was accidentally adding the placeholder value of -9999 for motion_offset to varation weights and parameters when applying motion. Set to zero if no value present.
 -Clamp flame rotation values to -180 - 180 when reading a flame from Xml.
 -Events were not properly wired for user changes in the random rotations per blend controls in the sequencer.
 -Fix major UI bugs with sequencer min/max random controls which made it nearly impossible to hand type values.
 -Values from rotations per blend and rotations per blend max were not being saved to file between program runs.
 -Checking animate for an xform was not applied to all flames even if Apply All was checked.
 -Changing interpolation type, temporal filter width, temporal type, and affine interpolation type were not actually saving to the flame when changed.
 -Grid on the main window was not being drawn at the right scale initially due to some OpenGL initialization occurring in the wrong order.
 -Severe bugs in sequence generation code:
  --Improperly detected padding xforms.
  --When looking for specific variations during xform aligning, only presence was detected, when it should have been presence plus a weight greater than zero.
  --When adding specific variations during xform aligning, must first remove any variations of that type.
  --Two variables were unsigned when they should have been signed. This prevented large blocks of code from ever executing.
  --When interpolating affines, an EPS that was too small was used, causing affine values to interpolate incorrectly. Instead use 1e-10 to ensure results equal to flam3.

--Code changes
 -Modify FractoriumEmberController::UpdateXform() to pass the selected xform index as well as the absolute index to func().
2018-06-12 21:20:15 -07:00
Person
93fcedebd4 1.0.0.9 Release
--Bug fixes
 -Pausing did not work when using OpenCL renderer.
2018-05-13 11:02:37 -07:00
Person
92e9836151 --User changes
-Add two new variations, hyperbolic and hypershift2.
 -Allow for animating final xforms.
 -More detailed diagnostics when any action in the OpenCL renderer fails.
 -Allow for creating an OpenCL renderer which does not share a texture with the main window, and instead manually copies its final output image from GPU to CPU then back to GPU.

--Bug fixes
 -Text was not properly being copied out of the Info | Bounds text box.

--Code changes
 -Remove Renderer::AccumulatorToFinalImage(v4F* pixels, size_t finalOffset), it's no longer needed or makes sense.
 -Controllers no longer keep track of shared status, it's kept inside the renderers.
 -Make getter functions in FractoriumOptionsDialog be public.
2018-04-28 22:28:05 -07:00
Person
0c67c52720 --Bug fixes
-Fix bug where animate flag was not properly being set.
2018-04-13 17:45:31 -07:00
Person
5c8837707c --Code changes
-Get GLSL code working on Mac and Linux.
2018-04-10 18:52:43 -07:00
Person
d6131b67e5 --Code changes
-Attempt to get GLSL working on Linux. Does not work.
2018-04-04 18:54:32 -07:00
Person
ae7b1f3ba8 --User changes
-Allow for pausing and resuming of final renders.

--Code changes
 -Only instantiate float version of Palette and PaletteList, no need for double since it's never used.
 -Allow for FinalRenderDialog to be queried on whether it's currently rendering.
2018-03-30 09:56:24 -07:00
Person
cd1749fe5f --User changes
-Add the ability to drag the rotation of the current palette via the palette preview table.
2018-03-29 16:10:22 -07:00
Person
ed74fd6a83 --User changes
-Convert OpenGL drawing code to use GLSL. Leave #define in until testing on multiple platforms is done.
 -Always use double precision extension defines in OpenCL programs, even if DP is not selected. This is because elliptic now always uses DP.
2018-03-27 21:32:10 -07:00
Person
b0dae7795a --Bug fixes
-Fix a variety of very strange bugs when clicking around on palettes in different files in the palette editor.
2018-01-29 22:14:48 -08:00
Person
4c53364f62 --Bug fixes
-Allow 7 decimal places in variations spinners.
 -Try to prevent infinite loop that sometimes happens when drawing grid. Unsure if this actually works since it's very hard to reproduce.
2018-01-28 17:51:19 -08:00
Person
4636c1047d --Bug fixes
-Change variation spin boxes to only show the precision needed, and also allow scientific notation.
2018-01-28 11:40:34 -08:00
Person
3f83b49cf0 --Bug fixes
-Clicking random palette when using a palette file with only two entries in it could lead to a program freeze.
2017-12-22 20:07:24 -08:00
Person
49b6ef20c1 --Bug fixes
-Update /debian/changelog to use a newer version of ubuntu named artful. Users will need to add that PPA to get it via apt.
-Update copyright year to 2018.
2017-12-21 22:11:18 -08:00
Person
7a343606b4 --Bug fixes
-Fix crash when creating a dummy renderer when showing the final render dialog.
 -Fix default tab size with new version of Qt.
2017-12-21 20:09:08 -08: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
5646b5162a --Bug fixes
-Fix build.sh for Mac.
 -No longer need special code for color dialog on Mac.
 -Fix OpenGL blending issues on Mac.
2017-12-15 16:22:00 -08:00
Person
6874688940 --Bug fixes
-Opening an Xml was not properly setting the background field on the GUI, even though it was correctly parsed and used.
2017-12-14 17:31:47 -08:00
Person
2900416e96 --Code changes
-Attempt to fix OpenGL drawing changes on Mac.
 -Allow toggling of color speed spinner to zero.
2017-12-13 15:32:50 -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
13d3200c1e --Bug fixes
-Fix some dialog sizing problems present in the last commit.
2017-11-26 18:24:08 -08:00
Person
59fb29f5b7 For some reason these didn't get committed. 2017-11-26 17:29:58 -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
be1bfd9ab6 1.0.0.6 09/03/2017 Release (Linux) 2017-09-03 13:26:42 -07:00
Person
98ff28a9a9 1.0.0.6 Release
--Bug fixes
 -Strips renders crashed.
 -Better handling of large memory allocations by forcing a free of previous allocations.
 -Final render dialog did not properly save last used extension setting.
 -Density filtering progress bar in final render dialog did not update if only log scaling was being used.
2017-09-02 23:01:10 -07:00
Person
b677e6355e Bug fixes:
--Only allow crackle_cellsize to be greater than 0.
2017-08-18 07:16:30 -07:00
Person
48a6111bf9 Bug fixes:
--Typing in the xform color index spinner produced strange results.
--Returning from palette editor did not always update xform color indices.
2017-08-17 22:40:03 -07:00
Person
6c9d9e57cc Bug fixes:
--Disallow the use of synth when randomly generating xforms if the user has an Nvidia device present on their system.

Code changes:
--Use some CPU defines in CL code.
--Change curves color scaling buffer to be 2^16 per channel instead of 2^17 which was probably overkill.
--Code in RendererClDevice::Init() to detect Nvidia was wrong even thought it technically worked.
2017-08-07 19:53:13 -07:00
Person
a81b93d94a Bug fixes:
--Fix bug where clearing the final xform, but leaving it present, then editing it would crash the program.
2017-07-26 21:25:44 -07:00
Person
8f2218326a Bug fixes:
--Fix logic for showing context menu when the option for right click to toggle is true.
2017-07-22 18:30:25 -07: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
c4e891b18c 06/09/2017
--User changes
 -dark.qss is now per-OS.
 -Properly set/reload palette when coming from the palette editor. The latter must be done if they've modified the current palette even if they've clicked cancel.

--Bug fixes
 -Make the following variations safer by using Zeps(): conic, bipolar, edisc, whorl, tan, csc, cot, tanh, sech, csch, coth, auger, bwraps, hypertile3d, hypertile3d1, ortho, poincare, rational3, barycentroid, sschecks, cscq, cschq, scry_3D, splitbrdr, hexcrop, nblur, crob.
 -Fix bug enabling/disabling overwrite button in palette editor.
 -Small optimization for gdoffs, use precalcAtanYX.
 -Properly propagate z through circlesplit, cylinder2 and tile_log variations.
 -Some values in truchet_fill could've been NaN.

--Code changes
 -Make most installation files read only.
 -Qualify many calls with std:: to ensure they're not colliding with glm::
 -Use auto in more places.
2017-06-09 19:38:06 -07:00
Person
c194d708fd 06/6/2017
--Bug fixes
 -Fix crash when opening palette editor with a flame whose palette specifies no originating file.

--Code changes
 -Revert font changes, only use qss for these now.
2017-06-06 16:41:00 -07:00
Person
66a597df39 06/04/2017
--User changes
 -Make all fonts be MS Shell Dlg 2. This will require reloading dark.qss if users are already using it.
 -Limit size of the left side of the palette editor.
 -Disable create from image buttons in the palette editor when working on a fixed palette.

--Bug fixes
 -The following variations were wrong: coshq, cothq.
 -During iteration, the color index could become nan if all xform color speeds were negative. This could lead to bad results on the GPU. Fix to check for nan. Minimal speed difference.

--Code changes
 -Make the following variations safer by using Zeps(): sinq, sinhq, secq, sechq, tanq, tanhq, cosq, coshq, cotq, cothq, cscq, cschq, estiq.
 -Always pass -cl-no-signed-zeros -cl-denorms-are-zero to kernel compiles for both single and double.
 -Flush all denormals to zero for all executable programs. This will likely lead to a speedup for badly behaving programs.
2017-06-04 17:37:29 -07:00
Person
5a8b4b1148 05/31/2017
--User changes
 -Add support for adjusting xform color indices in the palette editor. Fixed palettes can now be displayed there, but they will have no color arrows as they are not editable.
 -Add support for independent dimension scaling in the EmberRender and EmberAnimate programs to bring them in line with the final render dialog Fractorium.

--Bug fixes
 -File paths with a space in them did not work in the command line programs.
 -Any Xml file in the search paths would erroneously be treated as a palette file.

--Code changes
 -Change some for loops to while loops when iterating through xforms.
 -Allow FractoriumEmberController<T>::UpdateXform() to be able to apply the action to an xform at a specific index.
 -Remove old code blocks build files that were never used.
 -Make GetPath() return empty string if no path is present in the passed in file path.
 -GetTotalXform() was always counting the final xform, even if it was unused.
2017-05-31 19:50:05 -07:00