mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-07-06 00:06:00 -04:00
--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:
@ -13,6 +13,7 @@
|
||||
#include "AboutDialog.h"
|
||||
#include "CurvesGraphicsView.h"
|
||||
#include "DoubleSpinBoxTableItemDelegate.h"
|
||||
#include "PaletteEditor/PaletteEditor.h"
|
||||
|
||||
/// <summary>
|
||||
/// Fractorium class.
|
||||
@ -90,6 +91,11 @@ public:
|
||||
Fractorium(QWidget* p = nullptr);
|
||||
~Fractorium();
|
||||
|
||||
//Toolbar.
|
||||
bool DrawXforms();
|
||||
bool DrawImage();
|
||||
bool DrawGrid();
|
||||
|
||||
//Library.
|
||||
void SyncFileCountToSequenceCount();
|
||||
|
||||
@ -135,6 +141,8 @@ public slots:
|
||||
void OnActionPasteSelectedXforms(bool checked);
|
||||
|
||||
void OnActionResetWorkspace(bool checked);//View
|
||||
void OnActionAlternateEditorImage(bool checked);
|
||||
void OnActionResetScale(bool checked);
|
||||
|
||||
void OnActionAddReflectiveSymmetry(bool checked);//Tools.
|
||||
void OnActionAddRotationalSymmetry(bool checked);
|
||||
@ -158,6 +166,9 @@ public slots:
|
||||
void OnActionDP(bool checked);
|
||||
void OnActionStyle(bool checked);
|
||||
void OnActionStartStopRenderer(bool checked);
|
||||
void OnActionDrawXforms(bool checked);
|
||||
void OnActionDrawImage(bool checked);
|
||||
void OnActionDrawGrid(bool checked);
|
||||
|
||||
//Library.
|
||||
void OnEmberTreeItemChanged(QTreeWidgetItem* item, int col);
|
||||
@ -237,7 +248,6 @@ public slots:
|
||||
void OnXformAnimateCheckBoxStateChanged(int state);
|
||||
|
||||
//Xforms Affine.
|
||||
void OnLockAffineScaleCheckBoxStateChanged(int state);
|
||||
void OnPreAffineRowDoubleClicked(int logicalIndex);
|
||||
void OnPreAffineColDoubleClicked(int logicalIndex);
|
||||
void OnPostAffineRowDoubleClicked(int logicalIndex);
|
||||
@ -275,6 +285,9 @@ public slots:
|
||||
void OnXformScrollColorIndexChanged(int d);
|
||||
void OnRandomColorIndicesButtonClicked(bool b);
|
||||
void OnToggleColorIndicesButtonClicked(bool b);
|
||||
void OnRandomColorSpeedButtonClicked(bool b);
|
||||
void OnToggleColorSpeedButtonClicked(bool b);
|
||||
|
||||
void OnXformColorSpeedChanged(double d);
|
||||
void OnXformOpacityChanged(double d);
|
||||
void OnXformDirectColorChanged(double d);
|
||||
@ -313,9 +326,12 @@ public slots:
|
||||
void OnPaletteCellDoubleClicked(int row, int col);
|
||||
void OnPaletteRandomSelectButtonClicked(bool checked);
|
||||
void OnPaletteRandomAdjustButtonClicked(bool checked);
|
||||
void OnPaletteEditorButtonClicked(bool checked);
|
||||
void OnPaletteFilterLineEditTextChanged(const QString& text);
|
||||
void OnPaletteFilterClearButtonClicked(bool checked);
|
||||
void OnPaletteHeaderSectionClicked(int col);
|
||||
void OnPaletteEditorColorChanged();
|
||||
void OnPaletteEditorFileChanged();
|
||||
|
||||
//Info.
|
||||
void OnSummaryTableHeaderResized(int logicalIndex, int oldSize, int newSize);
|
||||
@ -371,6 +387,7 @@ private:
|
||||
void SyncOptionsToToolbar();
|
||||
|
||||
//Library.
|
||||
void SelectLibraryItem(size_t index);
|
||||
vector<pair<size_t, QTreeWidgetItem*>> GetCurrentEmberIndex();
|
||||
void SyncSequenceSettings();
|
||||
|
||||
@ -384,7 +401,6 @@ private:
|
||||
|
||||
//Xforms Variations.
|
||||
void Filter();
|
||||
void Filter(const QString& text);
|
||||
|
||||
//Xforms Selection.
|
||||
void ClearXformsSelections();
|
||||
@ -397,6 +413,7 @@ private:
|
||||
void ResetPaletteControls();
|
||||
void SetPaletteFileComboIndex(const string& filename);
|
||||
void SetPaletteTableItem(QPixmap* pixmap, QTableWidget* table, QTableWidgetItem* item, int row, int col);
|
||||
bool PaletteChanged();
|
||||
|
||||
//Info.
|
||||
void FillSummary();
|
||||
@ -415,11 +432,12 @@ private:
|
||||
QString SetupSaveXmlDialog(const QString& defaultFilename);
|
||||
QString SetupSaveImageDialog(const QString& defaultFilename);
|
||||
QString SetupSaveFolderDialog();
|
||||
QColorDialog* m_ColorDialog;
|
||||
FractoriumFinalRenderDialog* m_FinalRenderDialog;
|
||||
FractoriumOptionsDialog* m_OptionsDialog;
|
||||
FractoriumVariationsDialog* m_VarDialog;
|
||||
FractoriumAboutDialog* m_AboutDialog;
|
||||
QColorDialog* m_ColorDialog = nullptr;
|
||||
FractoriumFinalRenderDialog* m_FinalRenderDialog = nullptr;
|
||||
FractoriumOptionsDialog* m_OptionsDialog = nullptr;
|
||||
FractoriumVariationsDialog* m_VarDialog = nullptr;
|
||||
FractoriumAboutDialog* m_AboutDialog = nullptr;
|
||||
PaletteEditor* m_PaletteEditor = nullptr;
|
||||
|
||||
//Params.
|
||||
DoubleSpinBox* m_BrightnessSpin;//Color.
|
||||
@ -494,6 +512,8 @@ private:
|
||||
DoubleSpinBoxTableItemDelegate* m_XaosTableItemDelegate;
|
||||
|
||||
//Palette.
|
||||
bool m_PaletteChanged;
|
||||
bool m_PaletteFileChanged;
|
||||
SpinBox* m_PaletteHueSpin;
|
||||
SpinBox* m_PaletteSaturationSpin;
|
||||
SpinBox* m_PaletteBrightnessSpin;
|
||||
@ -510,9 +530,9 @@ private:
|
||||
QTableWidgetItem* m_InfoFinalXformItem;
|
||||
|
||||
//Files.
|
||||
QFileDialog* m_FileDialog;
|
||||
QFileDialog* m_FolderDialog;
|
||||
QssDialog* m_QssDialog;
|
||||
QFileDialog* m_FileDialog = nullptr;
|
||||
QFileDialog* m_FolderDialog = nullptr;
|
||||
QssDialog* m_QssDialog = nullptr;
|
||||
QString m_LastSaveAll;
|
||||
QString m_LastSaveCurrent;
|
||||
QString m_Style;
|
||||
|
Reference in New Issue
Block a user