mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-03-13 15:21:36 -04:00
1.0.0.6 Release
--Bug fixes -Strips renders crashed. -Better handling of large memory allocations by forcing a free of previous allocations. -Final render dialog did not properly save last used extension setting. -Density filtering progress bar in final render dialog did not update if only log scaling was being used.
This commit is contained in:
parent
48f4f0f5b1
commit
98ff28a9a9
@ -6,7 +6,7 @@
|
|||||||
<ProductVersion>3.7</ProductVersion>
|
<ProductVersion>3.7</ProductVersion>
|
||||||
<ProjectGuid>{c8096c47-e358-438c-a520-146d46b0637d}</ProjectGuid>
|
<ProjectGuid>{c8096c47-e358-438c-a520-146d46b0637d}</ProjectGuid>
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
<OutputName>Fractorium_1.0.0.5</OutputName>
|
<OutputName>Fractorium_1.0.0.6</OutputName>
|
||||||
<OutputType>Package</OutputType>
|
<OutputType>Package</OutputType>
|
||||||
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
||||||
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||||
<?define ProductVersion="1.0.0.5" ?>
|
<?define ProductVersion="1.0.0.6" ?>
|
||||||
<?define ProductName="Fractorium $(var.ProductVersion) ($(var.GpuType))" ?>
|
<?define ProductName="Fractorium $(var.ProductVersion) ($(var.GpuType))" ?>
|
||||||
<?define UpgradeCode="{4714cd15-bfba-44f6-8059-9e1466ebfa6e}"?>
|
<?define UpgradeCode="{4714cd15-bfba-44f6-8059-9e1466ebfa6e}"?>
|
||||||
<?define Manufacturer="Fractorium"?>
|
<?define Manufacturer="Fractorium"?>
|
||||||
@ -13,7 +13,7 @@
|
|||||||
<!--
|
<!--
|
||||||
Change this for every release.
|
Change this for every release.
|
||||||
-->
|
-->
|
||||||
<?define ProductCode="{5A168AAA-9B7A-4803-9DA7-B7B053D27924}"?>
|
<?define ProductCode="{DC6B697E-7136-4A90-9C76-872245F43D14}"?>
|
||||||
|
|
||||||
<Product Id="$(var.ProductCode)" Name="$(var.ProductName)" Language="1033" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
|
<Product Id="$(var.ProductCode)" Name="$(var.ProductName)" Language="1033" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
|
||||||
<Package
|
<Package
|
||||||
|
Binary file not shown.
@ -49,8 +49,8 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1, 0, 0, 5
|
FILEVERSION 1, 0, 0, 6
|
||||||
PRODUCTVERSION 1, 0, 0, 5
|
PRODUCTVERSION 1, 0, 0, 6
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -67,12 +67,12 @@
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Open Source"
|
VALUE "CompanyName", "Open Source"
|
||||||
VALUE "FileDescription", "Renders fractal flames as animations with motion blur"
|
VALUE "FileDescription", "Renders fractal flames as animations with motion blur"
|
||||||
VALUE "FileVersion", "1.0.0.5"
|
VALUE "FileVersion", "1.0.0.6"
|
||||||
VALUE "InternalName", "EmberAnimate.exe"
|
VALUE "InternalName", "EmberAnimate.exe"
|
||||||
VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2017, GPL v3"
|
VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2017, GPL v3"
|
||||||
VALUE "OriginalFilename", "EmberAnimate.exe"
|
VALUE "OriginalFilename", "EmberAnimate.exe"
|
||||||
VALUE "ProductName", "Ember Animate"
|
VALUE "ProductName", "Ember Animate"
|
||||||
VALUE "ProductVersion", "1.0.0.5"
|
VALUE "ProductVersion", "1.0.0.6"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
Binary file not shown.
@ -49,8 +49,8 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1, 0, 0, 5
|
FILEVERSION 1, 0, 0, 6
|
||||||
PRODUCTVERSION 1, 0, 0, 5
|
PRODUCTVERSION 1, 0, 0, 6
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -67,12 +67,12 @@
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Open Source"
|
VALUE "CompanyName", "Open Source"
|
||||||
VALUE "FileDescription", "Manipulates fractal flames parameter files"
|
VALUE "FileDescription", "Manipulates fractal flames parameter files"
|
||||||
VALUE "FileVersion", "1.0.0.5"
|
VALUE "FileVersion", "1.0.0.6"
|
||||||
VALUE "InternalName", "EmberGenome.exe"
|
VALUE "InternalName", "EmberGenome.exe"
|
||||||
VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2017, GPL v3"
|
VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2017, GPL v3"
|
||||||
VALUE "OriginalFilename", "EmberGenome.exe"
|
VALUE "OriginalFilename", "EmberGenome.exe"
|
||||||
VALUE "ProductName", "Ember Genome"
|
VALUE "ProductName", "Ember Genome"
|
||||||
VALUE "ProductVersion", "1.0.0.5"
|
VALUE "ProductVersion", "1.0.0.6"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -49,8 +49,8 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1, 0, 0, 5
|
FILEVERSION 1, 0, 0, 6
|
||||||
PRODUCTVERSION 1, 0, 0, 5
|
PRODUCTVERSION 1, 0, 0, 6
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -67,12 +67,12 @@
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Open Source"
|
VALUE "CompanyName", "Open Source"
|
||||||
VALUE "FileDescription", "Renders fractal flames as single images"
|
VALUE "FileDescription", "Renders fractal flames as single images"
|
||||||
VALUE "FileVersion", "1.0.0.5"
|
VALUE "FileVersion", "1.0.0.6"
|
||||||
VALUE "InternalName", "EmberRender.exe"
|
VALUE "InternalName", "EmberRender.exe"
|
||||||
VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2017, GPL v3"
|
VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2017, GPL v3"
|
||||||
VALUE "OriginalFilename", "EmberRender.exe"
|
VALUE "OriginalFilename", "EmberRender.exe"
|
||||||
VALUE "ProductName", "Ember Render"
|
VALUE "ProductName", "Ember Render"
|
||||||
VALUE "ProductVersion", "1.0.0.5"
|
VALUE "ProductVersion", "1.0.0.6"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
VERSION = 1.0.0.5
|
VERSION = 1.0.0.6
|
||||||
win32:CONFIG += skip_target_version_ext
|
win32:CONFIG += skip_target_version_ext
|
||||||
CONFIG += c++14
|
CONFIG += c++14
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
1.0.0.6 09/02/2017
|
||||||
|
--Bug fixes
|
||||||
|
-Strips renders crashed.
|
||||||
|
-Better handling of large memory allocations by forcing a free of previous allocations.
|
||||||
|
-Final render dialog did not properly save last used extension setting.
|
||||||
|
-Density filtering progress bar in final render dialog did not update if only log scaling was being used.
|
||||||
|
|
||||||
1.0.0.5 08/28/2017
|
1.0.0.5 08/28/2017
|
||||||
--User changes
|
--User changes
|
||||||
-Add support for Exr files which use 32-bit floats for each RGBA channel.
|
-Add support for Exr files which use 32-bit floats for each RGBA channel.
|
||||||
|
@ -37,7 +37,7 @@ static void sincos(float x, float* s, float* c)
|
|||||||
|
|
||||||
namespace EmberNs
|
namespace EmberNs
|
||||||
{
|
{
|
||||||
#define EMBER_VERSION "1.0.0.5"
|
#define EMBER_VERSION "1.0.0.6"
|
||||||
#define EPS6 T(1e-6)
|
#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 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
|
#define ISAAC_SIZE 4
|
||||||
|
@ -909,6 +909,11 @@ eRenderStatus Renderer<T, bucketT>::LogScaleDensityFilter(bool forceOutput)
|
|||||||
, tbb::static_partitioner()
|
, tbb::static_partitioner()
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (m_Callback && !m_Abort)
|
||||||
|
if (!m_Callback->ProgressFunc(m_Ember, m_ProgressParameter, 100.0, 1, 0))
|
||||||
|
Abort();
|
||||||
|
|
||||||
//t.Toc(__FUNCTION__);
|
//t.Toc(__FUNCTION__);
|
||||||
return m_Abort ? eRenderStatus::RENDER_ABORT : eRenderStatus::RENDER_OK;
|
return m_Abort ? eRenderStatus::RENDER_ABORT : eRenderStatus::RENDER_OK;
|
||||||
}
|
}
|
||||||
|
@ -139,7 +139,12 @@ bool OpenCLWrapper::AddBuffer(const string& name, size_t size, cl_mem_flags flag
|
|||||||
}
|
}
|
||||||
else if (GetBufferSize(bufferIndex) != size)//If it did exist, only create and add if the sizes were different.
|
else if (GetBufferSize(bufferIndex) != size)//If it did exist, only create and add if the sizes were different.
|
||||||
{
|
{
|
||||||
m_Buffers[bufferIndex] = NamedBuffer(cl::Buffer(m_Context, flags, size_t(0), nullptr, &err), "emptybuffer");//First clear out the original so the two don't exist in memory at once.
|
m_Buffers[bufferIndex] = NamedBuffer(cl::Buffer(m_Context, flags, size_t(1), nullptr, &err), "emptybuffer");//First clear out the original so the two don't exist in memory at once.
|
||||||
|
char ch = 0;
|
||||||
|
|
||||||
|
if (!WriteBuffer("emptybuffer", &ch, 1))//Write the dummy buffer at least once because OpenCL seems to do a lazy instantiation of buffers.
|
||||||
|
return false;
|
||||||
|
|
||||||
cl::Buffer buff(m_Context, flags, size, nullptr, &err);//Create the new buffer.
|
cl::Buffer buff(m_Context, flags, size, nullptr, &err);//Create the new buffer.
|
||||||
|
|
||||||
if (!m_Info->CheckCL(err, "cl::Buffer()"))
|
if (!m_Info->CheckCL(err, "cl::Buffer()"))
|
||||||
@ -190,7 +195,12 @@ bool OpenCLWrapper::AddHostBuffer(const string& name, size_t size, void* data)
|
|||||||
if (GetBufferSize(bufferIndex) != size ||//If it did exist, only create and add if the sizes...
|
if (GetBufferSize(bufferIndex) != size ||//If it did exist, only create and add if the sizes...
|
||||||
data != m_Buffers[bufferIndex].m_Buffer.getInfo<CL_MEM_HOST_PTR>(nullptr))//...or addresses were different.
|
data != m_Buffers[bufferIndex].m_Buffer.getInfo<CL_MEM_HOST_PTR>(nullptr))//...or addresses were different.
|
||||||
{
|
{
|
||||||
m_Buffers[bufferIndex] = NamedBuffer(cl::Buffer(m_Context, CL_MEM_USE_HOST_PTR, size_t(0), data, &err), "emptybuffer");//First clear out the original so the two don't exist in memory at once.
|
m_Buffers[bufferIndex] = NamedBuffer(cl::Buffer(m_Context, CL_MEM_USE_HOST_PTR, size_t(1), data, &err), "emptybuffer");//First clear out the original so the two don't exist in memory at once.
|
||||||
|
char ch = 0;
|
||||||
|
|
||||||
|
if (!WriteBuffer("emptybuffer", &ch, 1))//Write the dummy buffer at least once because OpenCL seems to do a lazy instantiation of buffers.
|
||||||
|
return false;
|
||||||
|
|
||||||
cl::Buffer buff(m_Context, CL_MEM_USE_HOST_PTR, size, data, &err);//Create the new buffer.
|
cl::Buffer buff(m_Context, CL_MEM_USE_HOST_PTR, size, data, &err);//Create the new buffer.
|
||||||
|
|
||||||
if (!m_Info->CheckCL(err, "cl::Buffer()"))
|
if (!m_Info->CheckCL(err, "cl::Buffer()"))
|
||||||
|
@ -1154,18 +1154,19 @@ eRenderStatus RendererCL<T, bucketT>::RunLogScaleFilter()
|
|||||||
if (b && !(b = wrapper.RunKernel(kernelIndex, gridW, gridH, 1, blockW, blockH, 1))) { AddToReport(loc); }
|
if (b && !(b = wrapper.RunKernel(kernelIndex, gridW, gridH, 1, blockW, blockH, 1))) { AddToReport(loc); }
|
||||||
|
|
||||||
//t.Toc(loc);
|
//t.Toc(loc);
|
||||||
|
|
||||||
|
if (b && m_Callback)
|
||||||
|
if (!m_Callback->ProgressFunc(m_Ember, m_ProgressParameter, 100.0, 1, 0.0))
|
||||||
|
Abort();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b = false;
|
b = false;
|
||||||
AddToReport(loc);
|
AddToReport(loc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (b && m_Callback && m_LastIterPercent >= 99.0)//Only update progress if we've really reached the end, not via forced output.
|
|
||||||
m_Callback->ProgressFunc(m_Ember, m_ProgressParameter, 100.0, 1, 0.0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return b ? eRenderStatus::RENDER_OK : eRenderStatus::RENDER_ERROR;
|
return m_Abort ? eRenderStatus::RENDER_ABORT : (b ? eRenderStatus::RENDER_OK : eRenderStatus::RENDER_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1273,7 +1274,8 @@ eRenderStatus RendererCL<T, bucketT>::RunDensityFilter()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (b && m_Callback)
|
if (b && m_Callback)
|
||||||
m_Callback->ProgressFunc(m_Ember, m_ProgressParameter, 100.0, 1, 0.0);
|
if (!m_Callback->ProgressFunc(m_Ember, m_ProgressParameter, 100.0, 1, 0.0))
|
||||||
|
Abort();
|
||||||
|
|
||||||
//t2.Toc(__FUNCTION__ " all passes");
|
//t2.Toc(__FUNCTION__ " all passes");
|
||||||
}
|
}
|
||||||
|
@ -572,9 +572,9 @@ static bool StripsRender(RendererBase* renderer, Ember<T>& ember, vector<v4F>& f
|
|||||||
size_t stripOffset;
|
size_t stripOffset;
|
||||||
|
|
||||||
if (yAxisUp)
|
if (yAxisUp)
|
||||||
stripOffset = ember.m_FinalRasH * ((strips - strip) - 1) * renderer->FinalRowSize();
|
stripOffset = ember.m_FinalRasH * ((strips - strip) - 1) * ember.m_FinalRasW;
|
||||||
else
|
else
|
||||||
stripOffset = ember.m_FinalRasH * strip * renderer->FinalRowSize();
|
stripOffset = ember.m_FinalRasH * strip * ember.m_FinalRasW;
|
||||||
|
|
||||||
ember.m_CenterY = centerBase + ember.m_FinalRasH * T(strip) / (ember.m_PixelsPerUnit * zoomScale);
|
ember.m_CenterY = centerBase + ember.m_FinalRasH * T(strip) / (ember.m_PixelsPerUnit * zoomScale);
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><html><head/><body><p align="center">Fractorium 1.0.0.5</p><p align="center"><span style=" font-size:10pt;">A Qt-based fractal flame editor which uses a C++ re-write of the flam3 algorithm named Ember and a GPU capable version named EmberCL which implements a portion of the cuburn algorithm in OpenCL.</span></p><p align="center"><a href="http://fractorium.com"><span style=" text-decoration: underline; color:#0000ff;">fractorium.com</span></a><span style=" font-size:10pt;"><br/>Lead: Matt Feemster<br/>Contributors: Simon Detheridge, Michel Mastriani</span></p></body></html></string>
|
<string><html><head/><body><p align="center">Fractorium 1.0.0.6</p><p align="center"><span style=" font-size:10pt;">A Qt-based fractal flame editor which uses a C++ re-write of the flam3 algorithm named Ember and a GPU capable version named EmberCL which implements a portion of the cuburn algorithm in OpenCL.</span></p><p align="center"><a href="http://fractorium.com"><span style=" text-decoration: underline; color:#0000ff;">fractorium.com</span></a><span style=" font-size:10pt;"><br/>Lead: Matt Feemster<br/>Contributors: Simon Detheridge, Michel Mastriani</span></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textFormat">
|
<property name="textFormat">
|
||||||
<enum>Qt::RichText</enum>
|
<enum>Qt::RichText</enum>
|
||||||
|
@ -52,7 +52,7 @@ FractoriumFinalRenderDialog::FractoriumFinalRenderDialog(QWidget* p, Qt::WindowF
|
|||||||
m_ItersCellIndex = row++;//Iters.
|
m_ItersCellIndex = row++;//Iters.
|
||||||
m_PathCellIndex = row;
|
m_PathCellIndex = row;
|
||||||
QStringList comboList;
|
QStringList comboList;
|
||||||
#ifndef _WIN32
|
#ifdef _WIN32
|
||||||
comboList.append("bmp");
|
comboList.append("bmp");
|
||||||
#endif
|
#endif
|
||||||
comboList.append("jpg");
|
comboList.append("jpg");
|
||||||
|
6
debian/changelog
vendored
6
debian/changelog
vendored
@ -1,3 +1,9 @@
|
|||||||
|
fractorium (1.0.0.6-0ubuntu1) xenial; urgency=low
|
||||||
|
|
||||||
|
* release 1.0.0.6
|
||||||
|
|
||||||
|
-- Matt Feemster <matt.feemster@gmail.com> Sat, 02 Sep 2017 17:51:15 -0700
|
||||||
|
|
||||||
fractorium (1.0.0.5c-0ubuntu1) xenial; urgency=low
|
fractorium (1.0.0.5c-0ubuntu1) xenial; urgency=low
|
||||||
|
|
||||||
* release 1.0.0.5
|
* release 1.0.0.5
|
||||||
|
Loading…
Reference in New Issue
Block a user