mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-07-05 15:54:50 -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:
@ -186,6 +186,19 @@ Fractorium::Fractorium(QWidget* p)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef __APPLE__
|
||||
|
||||
for (auto dock : m_Docks)//Fixes focus problem on OSX.
|
||||
{
|
||||
if (!dock->isHidden())
|
||||
{
|
||||
dock->setFloating(!dock->isFloating());
|
||||
dock->setFloating(!dock->isFloating());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
//At this point, everything has been setup except the renderer. Shortly after
|
||||
//this constructor exits, GLWidget::InitGL() will create the initial flock and start the rendering timer
|
||||
//which executes whenever the program is idle. Upon starting the timer, the renderer
|
||||
@ -201,6 +214,8 @@ Fractorium::~Fractorium()
|
||||
{
|
||||
SyncSequenceSettings();
|
||||
m_VarDialog->SyncSettings();
|
||||
m_Settings->ShowXforms(ui.ActionDrawXforms->isChecked());
|
||||
m_Settings->ShowGrid(ui.ActionDrawGrid->isChecked());
|
||||
m_Settings->setValue("windowState", saveState());
|
||||
m_Settings->sync();
|
||||
}
|
||||
@ -497,16 +512,13 @@ QStringList Fractorium::SetupOpenXmlDialog()
|
||||
m_FileDialog->setViewMode(QFileDialog::List);
|
||||
}
|
||||
|
||||
if (!m_FileDialog)
|
||||
return QStringList("");
|
||||
|
||||
QStringList filenames;
|
||||
m_FileDialog->disconnect(SIGNAL(filterSelected(const QString&)));
|
||||
connect(m_FileDialog, &QFileDialog::filterSelected, [&](const QString & filter) { m_Settings->OpenXmlExt(filter); });
|
||||
m_FileDialog->setFileMode(QFileDialog::ExistingFiles);
|
||||
m_FileDialog->setAcceptMode(QFileDialog::AcceptOpen);
|
||||
m_FileDialog->setNameFilter("Flam3 (*.flam3);;Flame (*.flame);;Xml (*.xml)");
|
||||
m_FileDialog->setWindowTitle("Open flame");
|
||||
m_FileDialog->setWindowTitle("Open Flame");
|
||||
m_FileDialog->setDirectory(m_Settings->OpenFolder());
|
||||
m_FileDialog->selectNameFilter(m_Settings->OpenXmlExt());
|
||||
|
||||
@ -709,15 +721,20 @@ void Fractorium::SetTabOrders()
|
||||
w = SetTabOrder(this, w, ui.SequenceRandomizeStaggerCheckBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceStaggerSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRandomStaggerMaxSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRandomizeRotationsCheckBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRotationsSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRotationsCWCheckBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRandomRotationsMaxSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRandomizeFramesPerRotCheckBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceFramesPerRotSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRandomFramesPerRotMaxSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRandomizeRotationsCheckBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRotationsSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRandomRotationsMaxSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRandomizeBlendFramesCheckBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceBlendFramesSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRandomBlendMaxFramesSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRandomizeRotationsPerBlendCheckBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRotationsPerBlendSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRotationsPerBlendCWCheckBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceRotationsPerBlendMaxSpinBox);
|
||||
w = SetTabOrder(this, w, ui.SequenceGenerateButton);
|
||||
w = SetTabOrder(this, w, ui.SequenceRenderButton);
|
||||
w = SetTabOrder(this, w, ui.SequenceSaveButton);
|
||||
@ -738,7 +755,6 @@ void Fractorium::SetTabOrders()
|
||||
w = SetTabOrder(this, w, m_XformOpacitySpin);
|
||||
w = SetTabOrder(this, w, m_XformDirectColorSpin);
|
||||
w = SetTabOrder(this, w, ui.SoloXformCheckBox);
|
||||
w = SetTabOrder(this, ui.LockAffineCheckBox, ui.PreAffineGroupBox);//Xforms affine.
|
||||
w = SetTabOrder(this, w, m_PreX1Spin);
|
||||
w = SetTabOrder(this, w, m_PreX2Spin);
|
||||
w = SetTabOrder(this, w, m_PreY1Spin);
|
||||
@ -802,8 +818,9 @@ void Fractorium::SetTabOrders()
|
||||
w = SetTabOrder(this, w, m_PaletteBlurSpin);
|
||||
w = SetTabOrder(this, w, m_PaletteBrightnessSpin);
|
||||
w = SetTabOrder(this, w, m_PaletteFrequencySpin);
|
||||
w = SetTabOrder(this, w, ui.PaletteRandomSelect);
|
||||
w = SetTabOrder(this, w, ui.PaletteRandomAdjust);
|
||||
w = SetTabOrder(this, w, ui.PaletteRandomSelectButton);
|
||||
w = SetTabOrder(this, w, ui.PaletteRandomAdjustButton);
|
||||
w = SetTabOrder(this, w, ui.PaletteEditorButton);
|
||||
w = SetTabOrder(this, w, ui.PaletteFilterLineEdit);
|
||||
w = SetTabOrder(this, w, ui.PaletteFilterClearButton);
|
||||
w = SetTabOrder(this, w, ui.PaletteListTable);
|
||||
|
Reference in New Issue
Block a user