mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-01-21 21:20:07 -05:00
fcd060976c
-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.
68 lines
1.6 KiB
C++
68 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "ui_OptionsDialog.h"
|
|
#include "FractoriumSettings.h"
|
|
#include "SpinBox.h"
|
|
|
|
/// <summary>
|
|
/// FractoriumOptionsDialog class.
|
|
/// </summary>
|
|
|
|
class Fractorium;//Forward declaration since Fractorium uses this dialog.
|
|
|
|
/// <summary>
|
|
/// The options dialog allows the user to save various preferences
|
|
/// between program runs.
|
|
/// It has a pointer to a FractoriumSettings object which is assigned
|
|
/// in the constructor. The main window holds the object as a member and the
|
|
/// pointer to it here is just for convenience.
|
|
/// </summary>
|
|
class FractoriumOptionsDialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
|
|
friend Fractorium;
|
|
|
|
public:
|
|
FractoriumOptionsDialog(QWidget* p = nullptr, Qt::WindowFlags f = 0);
|
|
|
|
public slots:
|
|
void OnOpenCLCheckBoxStateChanged(int state);
|
|
void OnDeviceTableCellChanged(int row, int col);
|
|
void OnDeviceTableRadioToggled(bool checked);
|
|
virtual void accept() override;
|
|
virtual void reject() override;
|
|
|
|
protected:
|
|
virtual void showEvent(QShowEvent* e) override;
|
|
|
|
private:
|
|
bool EarlyClip();
|
|
bool YAxisUp();
|
|
bool Transparency();
|
|
bool ContinuousUpdate();
|
|
bool OpenCL();
|
|
bool Double();
|
|
bool ShowAllXforms();
|
|
bool ToggleType();
|
|
bool Png16Bit();
|
|
bool AutoUnique();
|
|
bool LoadLast();
|
|
uint ThreadCount();
|
|
uint RandomCount();
|
|
uint CpuQuality();
|
|
uint OpenClQuality();
|
|
void DataToGui();
|
|
void GuiToData();
|
|
|
|
Ui::OptionsDialog ui;
|
|
shared_ptr<OpenCLInfo> m_Info;
|
|
SpinBox* m_XmlTemporalSamplesSpin;
|
|
SpinBox* m_XmlQualitySpin;
|
|
SpinBox* m_XmlSupersampleSpin;
|
|
QLineEdit* m_IdEdit;
|
|
QLineEdit* m_UrlEdit;
|
|
QLineEdit* m_NickEdit;
|
|
shared_ptr<FractoriumSettings> m_Settings;
|
|
};
|