mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-07-12 03:04:51 -04:00
--User changes
-Remove Hue as a saved parameter, as well as animation parameters associated with it. It's now a GUI-only field that is never saved. -Make histogram, density filter buffer, and all associated fields always float, even when using double. In that case, only the iteration calculations are now double. Suggested by Thomas Ludwig. -Print all three kernels in EmberRender when the --dump_kernel option is specified. -Apply variations filter to randoms. --Bug fixes -Fix bug where hue was not being preserved when switching controllers and embers. Very hard to repro bug, but mostly overcome by eliminating hue as a saved parameter. --Code changes -De-templatized DEOpenCLKernelCreator and FinalAccumOpenCLKernelCreator. They now just take a bool as a parameter to specify double precision. -To accommodate the buffers being float, introduce a new #define types in EmberCL called real4_bucket, and real4reals_bucket. -Density and spatial filtering structs now use this type. -ConvertDensityFilter() and ConvertSpatialFilter() no longer return a value, they just assign to the member.
This commit is contained in:
@ -550,18 +550,28 @@ void FractoriumEmberController<T>::FillParamTablesAndPalette()
|
||||
FillXaos();
|
||||
|
||||
//Palette.
|
||||
m_Fractorium->ResetPaletteControls();
|
||||
m_Fractorium->m_PaletteHueSpin->SetValueStealth(NormalizeDeg180<double>(m_Ember.m_Hue * 360.0));//Convert -0.5 to 0.5 range to -180 - 180.
|
||||
|
||||
//Use the ember's embedded palette, rather than one from the list, so assign it directly to the controls without applying adjustments.
|
||||
//Normally, the temp palette is assigned whenever the user clicks on a palette cell. But since that is skipped here, must do it manually.
|
||||
//The temp palette is assigned the palette read when the file was parsed/saved. The user can apply adjustments on the GUI later.
|
||||
//These adjustments will be applied to the temp palette, then assigned back to m_Ember.m_Palette.
|
||||
//Normally, the temp palette is assigned whenever the user clicks on a palette cell. But since this is not
|
||||
//called in response to that event, it is skipped here so must do it manually.
|
||||
m_TempPalette = m_Ember.m_Palette;
|
||||
auto temp = m_Ember.m_Palette.m_Filename;
|
||||
|
||||
//Palette controls are reset on each ember load. This means that if the palette was adjusted, saved, the selected ember
|
||||
//changed to another, then back, the previously adjusted palette will now be considered the base, and all adjustments set to 0.
|
||||
//To fix this, the caller must preserve the temp palette and the adjustment values and reassign. See Fractorium::CreateControllerFromOptions()
|
||||
//for an example.
|
||||
m_Fractorium->ResetPaletteControls();
|
||||
|
||||
auto temp = m_Ember.m_Palette.m_Filename;
|
||||
|
||||
if (temp.get())
|
||||
m_Fractorium->SetPaletteFileComboIndex(*temp.get());
|
||||
|
||||
UpdateAdjustedPaletteGUI(m_Ember.m_Palette);//Setting the palette will trigger a full render.
|
||||
//Update the palette preview widget.
|
||||
//Since the controls were cleared above, the adjusted palette will be identical to the base palette.
|
||||
//Callers can set, apply and display palette adjustments after this function exits if needed.
|
||||
UpdateAdjustedPaletteGUI(m_Ember.m_Palette);//Updating the palette GUI will trigger a full render.
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
Reference in New Issue
Block a user