--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.
This commit is contained in:
Person
2017-02-26 00:02:21 -08:00
parent 8a75d5d227
commit 8a4127d5d7
102 changed files with 242668 additions and 3713 deletions

View File

@ -74,7 +74,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>1284</width>
<width>1269</width>
<height>987</height>
</rect>
</property>
@ -2007,13 +2007,13 @@
<rect>
<x>770</x>
<y>0</y>
<width>255</width>
<width>294</width>
<height>881</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>255</width>
<width>294</width>
<height>617</height>
</size>
</property>
@ -2420,7 +2420,7 @@
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="PaletteRandomSelect">
<widget class="QPushButton" name="PaletteRandomSelectButton">
<property name="minimumSize">
<size>
<width>0</width>
@ -2442,7 +2442,7 @@
</widget>
</item>
<item>
<widget class="QPushButton" name="PaletteRandomAdjust">
<widget class="QPushButton" name="PaletteRandomAdjustButton">
<property name="minimumSize">
<size>
<width>0</width>
@ -2466,6 +2466,16 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="PaletteEditorButton">
<property name="toolTip">
<string>Open the palette editor to make a custom palette</string>
</property>
<property name="text">
<string>Palette Editor...</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="9" column="0">
@ -3050,7 +3060,7 @@
<enum>QTabWidget::Triangular</enum>
</property>
<property name="currentIndex">
<number>2</number>
<number>1</number>
</property>
<widget class="QWidget" name="XformColorTab">
<property name="sizePolicy">
@ -3370,6 +3380,53 @@
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<layout class="QGridLayout" name="gridLayout_5">
<property name="leftMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QPushButton" name="RandomColorIndicesButton">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Set all xform color indices to random numbers between 0 and 1, inclusive&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Random Indices</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="ToggleColorIndicesButton">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Set all xform color indices to 0 or 1&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Toggle Indices</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="RandomColorSpeedButton">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Set all xform color indices to 0 or 1&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Random Color Speed</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="ToggleColorSpeedButton">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Set all xform color indices to 0 or 1&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Toggle Color Speed</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0" colspan="2">
<widget class="TableWidget" name="XformColorValuesTable">
<property name="sizePolicy">
@ -3565,36 +3622,6 @@
</item>
</widget>
</item>
<item row="3" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>4</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="RandomColorIndicesButton">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Set all xform color indices to random numbers between 0 and 1, inclusive&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Random Indices</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="ToggleColorIndicesButton">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Set all xform color indices to 0 or 1&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Toggle Indices</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="SoloXformCheckBox">
<property name="toolTip">
@ -3642,16 +3669,6 @@
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QCheckBox" name="LockAffineCheckBox">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Checking this box will lock the display size of the affines at their current level, allowing for easy manipulation no matter what zoom level is used.&lt;/p&gt;&lt;p&gt;Unchecking this resets the scale used to draw the affines to its native value.&lt;/p&gt;&lt;p&gt;Note this only affects the display and does not alter any internal values used for rendering.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Lock Affine Scale</string>
</property>
</widget>
</item>
<item>
<widget class="QScrollArea" name="AffineTabScrollArea">
<property name="autoFillBackground">
@ -3672,7 +3689,7 @@
<x>0</x>
<y>0</y>
<width>263</width>
<height>700</height>
<height>722</height>
</rect>
</property>
<property name="autoFillBackground">
@ -6843,6 +6860,8 @@
<string>&amp;View</string>
</property>
<addaction name="ActionResetWorkspace"/>
<addaction name="ActionAlternateEditorImage"/>
<addaction name="ActionResetScale"/>
</widget>
<addaction name="MenuFile"/>
<addaction name="MenuEdit"/>
@ -6997,7 +7016,7 @@
<x>0</x>
<y>0</y>
<width>432</width>
<height>572</height>
<height>589</height>
</rect>
</property>
<property name="sizePolicy">
@ -7685,6 +7704,11 @@
<addaction name="ActionOptions"/>
<addaction name="separator"/>
<addaction name="ActionStyle"/>
<addaction name="separator"/>
<addaction name="ActionDrawXforms"/>
<addaction name="ActionDrawImage"/>
<addaction name="ActionDrawGrid"/>
<addaction name="ActionResetScale"/>
</widget>
<action name="ActionNewFlock">
<property name="icon">
@ -7870,6 +7894,9 @@
<property name="toolTip">
<string>Add a copy of the current flame to the end of the current file</string>
</property>
<property name="shortcut">
<string>Ctrl+J</string>
</property>
</action>
<action name="ActionClearFlame">
<property name="icon">
@ -8128,6 +8155,67 @@
<string>Ctrl+P</string>
</property>
</action>
<action name="ActionDrawImage">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="Fractorium.qrc">
<normaloff>:/Fractorium/Icons/pic.png</normaloff>:/Fractorium/Icons/pic.png</iconset>
</property>
<property name="text">
<string>Show/Hide Image</string>
</property>
<property name="toolTip">
<string>Show/Hide Image</string>
</property>
<property name="shortcut">
<string>Ctrl+I</string>
</property>
</action>
<action name="ActionDrawGrid">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="Fractorium.qrc">
<normaloff>:/Fractorium/Icons/grid.png</normaloff>:/Fractorium/Icons/grid.png</iconset>
</property>
<property name="text">
<string>Show/Hide Grid</string>
</property>
<property name="toolTip">
<string>Show/Hide Grid</string>
</property>
</action>
<action name="ActionDrawXforms">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="Fractorium.qrc">
<normaloff>:/Fractorium/Icons/Function-512.png</normaloff>:/Fractorium/Icons/Function-512.png</iconset>
</property>
<property name="text">
<string>Show/Hide Xforms</string>
</property>
<property name="toolTip">
<string>Show/Hide Xforms</string>
</property>
</action>
<action name="ActionAlternateEditorImage">
<property name="text">
<string>Alternate Editor/Image</string>
</property>
<property name="shortcut">
<string>Ctrl+W</string>
</property>
</action>
<action name="ActionResetScale">
<property name="text">
<string>Reset Scale</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>