mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-07-03 23:05:11 -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:
@ -41,7 +41,7 @@ public:
|
||||
|
||||
//Embers.
|
||||
virtual void SetEmber(const Ember<float>& ember, bool verbatim = false) { }
|
||||
virtual void CopyEmber(Ember<float>& ember, std::function<void(Ember<float>& ember)> perEmberOperation/* = [&](Ember<float>& ember) { }*/) { }
|
||||
virtual void CopyEmber(Ember<float>& ember, std::function<void(Ember<float>& ember)> perEmberOperation/* = [&](Ember<float>& ember) { }*/) { }//Uncomment default lambdas once LLVM fixes a crash in their compiler with default lambda parameters.//TODO
|
||||
virtual void SetEmberFile(const EmberFile<float>& emberFile) { }
|
||||
virtual void CopyEmberFile(EmberFile<float>& emberFile, std::function<void(Ember<float>& ember)> perEmberOperation/* = [&](Ember<float>& ember) { }*/) { }
|
||||
virtual void SetTempPalette(const Palette<float>& palette) { }
|
||||
@ -202,7 +202,7 @@ public:
|
||||
void DeleteRenderer();
|
||||
void SaveCurrentRender(const QString& filename, bool forcePull);
|
||||
RendererBase* Renderer() { return m_Renderer.get(); }
|
||||
vector<byte>* FinalImage() { return &m_FinalImage; }
|
||||
vector<byte>* FinalImage() { return &(m_FinalImage[m_FinalImageIndex]); }
|
||||
vector<byte>* PreviewFinalImage() { return &m_PreviewFinalImage; }
|
||||
|
||||
protected:
|
||||
@ -215,6 +215,7 @@ protected:
|
||||
bool m_Rendering;
|
||||
bool m_Shared;
|
||||
bool m_LastEditWasUndoRedo;
|
||||
uint m_FinalImageIndex;
|
||||
uint m_Platform;
|
||||
uint m_Device;
|
||||
uint m_SubBatchCount;
|
||||
@ -229,7 +230,8 @@ protected:
|
||||
QString m_LastSaveAll;
|
||||
QString m_LastSaveCurrent;
|
||||
CriticalSection m_Cs;
|
||||
vector<byte> m_FinalImage;
|
||||
std::thread m_WriteThread;
|
||||
vector<byte> m_FinalImage[2];
|
||||
vector<byte> m_PreviewFinalImage;
|
||||
vector<eProcessAction> m_ProcessActions;
|
||||
unique_ptr<EmberNs::RendererBase> m_Renderer;
|
||||
|
Reference in New Issue
Block a user