mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-06-30 21:36:33 -04:00
0.4.1.8 Beta - Date pending testing.
--User changes Thread image writing in EmberAnimate and when doing animation sequence in final render dialog. Add total time output for verbose mode in EmberAnimate to match EmberRender. --Bug Fixes Fix incorrect iters ran/requested percentage in EmberAnimate to match EmberRender. Fix motion blur being disabled when doing animations in final render dialog. Allow for boolean command line options which default to true to be set to false. --Code Changes Minor changes to enable a Mac build. Double the memory required for the final output buffer in RendererBase::MemoryRequired() when threading image writing. Reuse same buffer for RgbaToRgb() in EmberRender and EmberAnimate. Only resize in RgbaToRgb() if the two vectors are not the same. Add a final output buffer ping-ponging mechanism to facilitate threaded writes in controllers.
This commit is contained in:
@ -42,7 +42,7 @@
|
||||
|
||||
namespace EmberNs
|
||||
{
|
||||
#define EMBER_VERSION "0.4.1.7"
|
||||
#define EMBER_VERSION "0.4.1.8"
|
||||
#define EPS6 T(1e-6)
|
||||
#define EPS std::numeric_limits<T>::epsilon()//Apoplugin.h uses -20, but it's more mathematically correct to do it this way.
|
||||
#define ISAAC_SIZE 4
|
||||
|
@ -136,15 +136,21 @@ size_t RendererBase::HistMemoryRequired(size_t strips)
|
||||
/// Return a pair whose first member contains the amount of memory needed for the histogram,
|
||||
/// and whose second member contains the total the amount of memory needed to render the current ember.
|
||||
/// Optionally include the memory needed for the final output image in pair.second.
|
||||
/// Note that the memory required for the final output image will be doubled if threaded writes
|
||||
/// are used because a copy of the final output is passed to a thread.
|
||||
/// </summary>
|
||||
/// <param name="strips">The number of strips being used</param>
|
||||
/// <param name="includeFinal">If true include the memory needed for the final output image, else don't.</param>
|
||||
/// <param name="threadedWrite">Whether the caller will be writing the output in a thread, which doubles the memory required for the final output buffer.</param>
|
||||
/// <returns>The histogram memory required in first, and the total memory required in second</returns>
|
||||
pair<size_t, size_t> RendererBase::MemoryRequired(size_t strips, bool includeFinal)
|
||||
pair<size_t, size_t> RendererBase::MemoryRequired(size_t strips, bool includeFinal, bool threadedWrite)
|
||||
{
|
||||
pair<size_t, size_t> p;
|
||||
size_t outSize = includeFinal ? FinalBufferSize() : 0;
|
||||
|
||||
outSize *= (threadedWrite ? 2 : 1);
|
||||
p.first = HistMemoryRequired(strips);
|
||||
p.second = (p.first * 2) + (includeFinal ? FinalBufferSize() : 0);//Multiply hist by 2 to account for the density filtering buffer which is the same size as the histogram.
|
||||
p.second = (p.first * 2) + outSize;//Multiply hist by 2 to account for the density filtering buffer which is the same size as the histogram.
|
||||
|
||||
return p;
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ public:
|
||||
//Non-virtual processing functions.
|
||||
void ChangeVal(std::function<void(void)> func, eProcessAction action);
|
||||
size_t HistMemoryRequired(size_t strips);
|
||||
pair<size_t, size_t> MemoryRequired(size_t strips, bool includeFinal);
|
||||
pair<size_t, size_t> MemoryRequired(size_t strips, bool includeFinal, bool threadedWrite);
|
||||
vector<QTIsaac<ISAAC_SIZE, ISAAC_INT>> RandVec();
|
||||
bool PrepFinalAccumVector(vector<byte>& pixels);
|
||||
|
||||
|
Reference in New Issue
Block a user