diff --git a/Builds/MSVC/Installer/FractoriumInstaller.wixproj b/Builds/MSVC/Installer/FractoriumInstaller.wixproj index 5def1e6..614c4bb 100644 --- a/Builds/MSVC/Installer/FractoriumInstaller.wixproj +++ b/Builds/MSVC/Installer/FractoriumInstaller.wixproj @@ -6,7 +6,7 @@ 3.7 {c8096c47-e358-438c-a520-146d46b0637d} 2.0 - Fractorium_Beta_0.4.1.8 + Fractorium_Beta_0.9.9.0 Package $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets @@ -31,7 +31,7 @@ True - GpuType=AMD + GpuType=AMD_NVIDIA bin\$(Platform)\$(Configuration)\ diff --git a/Builds/MSVC/Installer/Product.wxs b/Builds/MSVC/Installer/Product.wxs index 457244e..fbc6005 100644 --- a/Builds/MSVC/Installer/Product.wxs +++ b/Builds/MSVC/Installer/Product.wxs @@ -1,6 +1,6 @@ - + @@ -13,7 +13,7 @@ - + + @@ -324,6 +325,9 @@ {f62787dd-1327-448b-9818-030062bcfaa5} + + + diff --git a/Builds/MSVC/VS2013/Ember.vcxproj.filters b/Builds/MSVC/VS2013/Ember.vcxproj.filters index ab751a1..1808021 100644 --- a/Builds/MSVC/VS2013/Ember.vcxproj.filters +++ b/Builds/MSVC/VS2013/Ember.vcxproj.filters @@ -116,6 +116,9 @@ Header Files + + Header Files + @@ -137,4 +140,7 @@ Source Files + + + \ No newline at end of file diff --git a/Builds/MSVC/VS2013/EmberCL.rc b/Builds/MSVC/VS2013/EmberCL.rc new file mode 100644 index 0000000..3c3216c Binary files /dev/null and b/Builds/MSVC/VS2013/EmberCL.rc differ diff --git a/Builds/MSVC/VS2013/EmberCL.vcxproj b/Builds/MSVC/VS2013/EmberCL.vcxproj index 659f9d7..8a306a7 100644 --- a/Builds/MSVC/VS2013/EmberCL.vcxproj +++ b/Builds/MSVC/VS2013/EmberCL.vcxproj @@ -316,6 +316,9 @@ + + + diff --git a/Builds/MSVC/VS2013/EmberCL.vcxproj.filters b/Builds/MSVC/VS2013/EmberCL.vcxproj.filters index 45bf595..b1b99f1 100644 --- a/Builds/MSVC/VS2013/EmberCL.vcxproj.filters +++ b/Builds/MSVC/VS2013/EmberCL.vcxproj.filters @@ -75,4 +75,9 @@ Header Files + + + Resource Files + + \ No newline at end of file diff --git a/Builds/MSVC/VS2013/Fractorium.vcxproj.filters b/Builds/MSVC/VS2013/Fractorium.vcxproj.filters index c17006a..acef896 100644 --- a/Builds/MSVC/VS2013/Fractorium.vcxproj.filters +++ b/Builds/MSVC/VS2013/Fractorium.vcxproj.filters @@ -53,6 +53,9 @@ cpp;moc False + + {95078dd1-1c6e-476d-b565-cc844cef63d2} + diff --git a/Builds/MSVC/VS2013/resource.h b/Builds/MSVC/VS2013/resource.h new file mode 100644 index 0000000..320fe20 --- /dev/null +++ b/Builds/MSVC/VS2013/resource.h @@ -0,0 +1,14 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by EmberCL.rc + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/Builds/MSVC/VS2013/resource1.h b/Builds/MSVC/VS2013/resource1.h new file mode 100644 index 0000000..dad2fe4 --- /dev/null +++ b/Builds/MSVC/VS2013/resource1.h @@ -0,0 +1,14 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Ember.rc + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/Data/Version History.txt b/Data/Version History.txt index 08ce724..570c5d5 100644 --- a/Data/Version History.txt +++ b/Data/Version History.txt @@ -1,4 +1,240 @@ -0.4.1.9 Beta +0.9.9.0 Beta 09/19/2015 (Major contributions from Simon Detheridge) +--User changes + -Add option to display affines in polar coords. + -Show OpenCL program build errors on info tab, when compilation fails. + -Add color curves adjustment widget and corresponding entry in the flame xml file. + -Add the ability to delete/select an ember at a given index in EmberFile with delete and enter keys. + -Add the ability to save ember Xmls to an unique automatically generated name after the first time the user has specified a name. + -Add automatic filename padding to animations in EmberAnimate and Fractorium. + -Allow for multiple palette files rather than hard coding to flam3-palettes.xml. + -Make xaos display a matrix in its own tab rather than a single column in the xforms tab. + -Remove xaos from/to button since it's no longer applicable. + -Add the ability to apply operations to a selection of xforms, rather than just the current one. + -Add the ability to set the current xform by pressing F1 - F32. + -Add the ability to toggle an entire row or column of xaos values. + -Add the ability to click the right mouse button and drag to adjust values in spinners. + -Allow for toggling row and column of affine tables. + -Add the ability to copy and paste xforms between flames. + -Allow for setting rendering thread priorities. + -Show estimated time left on the final render dialog. + -Sort palette list by name, instead of by index in the palette file. + -Sorting can be flipped by clicking the column headers of the palette table. + -Allow for detaching of top level tabs in the dock widget so workspaces can be customized and saved between runs. + -Add linked xform support, with new button and icon on the xforms tab. + -Add an additional animation motion function named Saw (Simon Detheridge). + -Add motion support at the ember level instead of just individual xforms (Simon Detheridge). + -Add an offset to existing motion elements, to start them partway through their cycle. + -Add Summary tab to the info dock, place existing bounds related info in a new Bounds tab. + -Add a toolbar with the most common actions on it, remove old toolbar at the top of the library tab. + -Add variations filter/selection dialog that applied to randoms and is also saved in the settings. + -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. + -Add Simon Detheridge's name to the About Box. + -Add support for multiple GPU devices. + --These options are present in the command line and in Fractorium. + --Change scheme of specifying devices from platform, device to just total device index. + ---Single number on the command line. + ---Change from combo boxes for device selection to a table of all devices in Fractorium. + -Temporal samples defaults to 100 instead of 1000 which was needless overkill. + -Make combo boxes have zero margins, they were getting clipped on Linux. + -Make xform weight cell slightly wider, it was getting clipped on Linux. + -Adjust height of final render dialog to make it look better on Linux. + +--Bug Fixes + -Fix status bar height on retina displays. + -Reduce the amount of ComputeCamera() and MakeDmap() calls on each incremental iter that doesn't use temporal samples. + -Fix clamping bug with DE filter widths. + -Prevent extra newline in EmberRender when only rendering a single image. + -Add and call ClearFinalImages() to clear buffers in controller to fix bug where previous CPU render would be shown for a split second when switching from OpenCL back to CPU. + -Refactor ember library pointer syncing to a function SyncPointers(). + -Use a non-imbued stringstream to generate output filename. + -Fix NAN in equalized weight calculation when all weights are set to 0. + -Prevent xform index flickering whenever changing the number of xforms. + -Fix tab tool tips again. + -Only correct variation names/params during parsing when the source of the Xml file is not from Ember/Fractorium. + -Order of affine scale up/down buttons was reversed from what's intuitive. + -Projection was not properly being set when animating flames with 3D parameters. + -Eliminate delay when switching between single and double precision. + -Convert motion_frequency to floating point. + -Make loops and motion_frequency params to EmberGenome work correctly, and convert to double. + -Allow for empty fields in template files. + -Better application wide exception handling and diagnostics. + -Put Nvidia block size in DE back to 24 where it used to be. Nvidia fails when it's 32. + -Fix misspelling of the word "Rendering" in failure messages in final render dialog. + -Properly disable add final xform button when a final xform is present. + -Move some kernel initialization to a place where it's done once per render, rather than on every interactive iter chunk. + -FractoriumXformsColor.cpp: Checking for null pixmap pointer is not enough, must also check if the underlying buffer is null via call to QPixmap::isNull(). + -Remove some old style sheet code on the xforms tab that doesn't seem to make sense and was probably just a workaround for a transient Qt bug, of which there are hundreds. + -Set auto fill background for all of the nested tabs on the ui. This has ping ponged back and forth since the beginning of this project. + +--Code Changes + -General code cleanup in many places. + -Major work to build on Mac and Linux. + -Better use of const functions. + -Force all float literals in OpenCL variations to correct precision. + -Remove ReadMe.txt from all project files. + -Provide functions to return the kernels from RendererCL to assist with diagnostics and debugging. + -Remove unnecessary resize() in Interpolate(). + -Explicitly namespace calls to sqrt() and isnan(). + -Clean up strange nested usage of Update([&]()) calls when changing xform color index via either the spinner or scroll bar. Made no sense. + -Make ISAAC RandBit() use RandByte() to be slightly more efficient. + -Put FillXforms() in the controller where it belongs, rather than the main window class. + -Add UpdateXform() function to the controller to handle applying operations to multiple xforms. + -Remove the word "Current" out of most xform related functions because they now operate on whatever is selected. + -Properly use Update() for various xform operations whereas before it was manually calling UpdateRender(). + -Also properly use Update() in places where it was erroneously using UpdateXform() for things that did not involve xforms. + -Block signals in FillXaosTable(). + -Add new file named FractoriumXformsSelect.cpp to handle new xform selection code. + -Remove ForEach() wrappers and replace with range based for loops with auto. + -Replace every regular for loop with a range based one where applicable. Note this doesn't work everywhere. + -Make event filter application wide. + -Add parameter to FillXforms() to specify the index to select, default 0. + -Rename some scroll areas and layouts to names that make sense, rather than their designer defaults. + -Fix some pedantic gcc errors about missing template keyword. + -Use QTableView instead of QTableWidget for the xaos table. + -Remove unnecessary connect() statement in Variations tab. + -Variation tree and associated widgets no longer actually contain variation objects, only IDs. + -Refactor code to make a color visible on a background into VisibleColor() in FractoriumCommon.h + -Add IsXformLinked() to determine if an xform is linked to another. + -Remove SetPaletteRefTable() and GetQRgbFromPaletteIndex() from FractoriumEmberControllerBase and its derivations, unused. + -Add FillSummary() to FractoriumEmberController. Call in Update(), UpdateXform() and other places where values are changed to force an update of the summary view. + -Add export statements to FractoriumInfo.cpp. + -Remove image parameter from SetPaletteTableItem(), it was a bad design. + -Refactor code to get a palette color at a given index and convert it to a QColor to ColorIndexToQColor(). + -Remove a file named Fractorium.aps which had been erroneously committed a year ago. + -Use qobject_cast instead of dynamic_cast where appropriate. + -Add more override keyword where appropriate. + -Add small function ShutdownAndRecreateFromOptions() to wrap shutting down the timer and recreating the renderer. + -Use the overridden accept() and reject() functions more consistently across dialogs. + -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. + -Make ConvertCarToRas() just assign to the member rather than return a struct. + -Make kernel string accessor functions in IterOpenCLKernelCreator, FinalAccumOpenCLKernelCreator and DEOpenCLKernelCreator be const and return a const string reference. + -Don't include atomic string unless locking on the GPU, which is never. + -Add bool to Alloc() to only allocate memory for the histogram. Needed for multi-GPU. + -Ember.h: Add case for FLAME_MOTION_NONE and default in ApplyFlameMotion(). + -EmberMotion.h: Call base constructor. + -EmberPch.h: #pragma once only on Windows. + -EmberToXml.h: + --Handle different types of exceptions. + --Add default cases to ToString(). + -Isaac.h: Remove unused variable in constructor. + -Point.h: Call base constructor in Color(). + -Renderer.h/cpp: + --Add bool to Alloc() to only allocate memory for the histogram. Needed for multi-GPU. + --Make CoordMap() return a const ref, not a pointer. + -SheepTools.h: + --Use 64-bit types like the rest of the code already does. + --Fix some comment misspellings. + -Timing.h: Make BeginTime(), EndTime(), ElapsedTime() and Format() be const functions. + -Utils.h: + --Add new functions Equal() and Split(). + --Handle more exception types in ReadFile(). + --Get rid of most legacy blending of C and C++ argument parsing. + -XmlToEmber.h: + --Get rid of most legacy blending of C and C++ code from flam3. + --Remove some unused variables. + -EmberAnimate: + --Support multi-GPU processing that alternates full frames between devices. + --Use OpenCLInfo instead of OpenCLWrapper for --openclinfo option. + --Remove bucketT template parameter, and hard code float in its place. + --If a render fails, exit since there is no point in continuing an animation with a missing frame. + --Pass variables to threaded save better, which most likely fixes a very subtle bug that existed before. + --Remove some unused variables. + -EmberGenome, EmberRender: + --Support multi-GPU processing that alternates full frames between devices. + --Use OpenCLInfo instead of OpenCLWrapper for --openclinfo option. + --Remove bucketT template parameter, and hard code float in its place. + -EmberRender: + --Support multi-GPU processing that alternates full frames between devices. + --Use OpenCLInfo instead of OpenCLWrapper for --openclinfo option. + --Remove bucketT template parameter, and hard code float in its place. + --Only print values when not rendering with OpenCL, since they're always 0 in that case. + -EmberCLPch.h: + --#pragma once only on Windows. + --#include . + -IterOpenCLKernelCreator.h: Add new kernel for summing two histograms. This is needed for multi-GPU. + -OpenCLWrapper.h: + --Move all OpenCL info related code into its own class OpenCLInfo. + --Add members to cache the values of global memory size and max allocation size. + -RendererCL.h/cpp: + --Redesign to accomodate multi-GPU. + --Constructor now takes a vector of devices. + --Remove DumpErrorReport() function, it's handled in the base. + --ClearBuffer(), ReadPoints(), WritePoints(), ReadHist() and WriteHist() now optionally take a device index as a parameter. + --MakeDmap() override and m_DmapCL member removed because it no longer applies since the histogram is always float since the last commit. + --Add new function SumDeviceHist() to sum histograms from two devices by first copying to a temporary on the host, then a temporary on the device, then summing. + --m_Calls member removed, as it's now per-device. + --OpenCLWrapper removed. + --m_Seeds member is now a vector of vector of seeds, to accomodate a separate and different array of seeds for each device. + --Added member m_Devices, a vector of unique_ptr of RendererCLDevice. + -EmberCommon.h + --Added Devices() function to convert from a vector of device indices to a vector of platform,device indices. + --Changed CreateRenderer() to accept a vector of devices to create a single RendererCL which will split work across multiple devices. + --Added CreateRenderers() function to accept a vector of devices to create multiple RendererCL, each which will render on a single device. + --Add more comments to some existing functions. + -EmberCommonPch.h: #pragma once only on Windows. + -EmberOptions.h: + --Remove --platform option, it's just sequential device number now with the --device option. + --Make --out be OPT_USE_RENDER instead of OPT_RENDER_ANIM since it's an error condition when animating. It makes no sense to write all frames to a single image. + --Add Devices() function to parse comma separated --device option string and return a vector of device indices. + --Make int and uint types be 64-bit, so intmax_t and size_t. + --Make better use of macros. + -JpegUtils.h: Make string parameters to WriteJpeg() and WritePng() be const ref. + -All project files: Turn off buffer security check option in Visual Studio (/Gs-) + -deployment.pri: Remove the line OTHER_FILES +=, it's pointless and was causing problems. + -Ember.pro, EmberCL.pro: Add CONFIG += plugin, otherwise it wouldn't link. + -EmberCL.pro: Add new files for multi-GPU support. + -build_all.sh: use -j4 and QMAKE=${QMAKE:/usr/bin/qmake} + -shared_settings.pri: + -Add version string. + -Remove old DESTDIR definitions. + -Add the following lines or else nothing would build: + CONFIG(release, debug|release) { + CONFIG += warn_off + DESTDIR = ../../../Bin/release + } + + CONFIG(debug, debug|release) { + DESTDIR = ../../../Bin/debug + } + + QMAKE_POST_LINK += $$quote(cp --update ../../../Data/flam3-palettes.xml $${DESTDIR}$$escape_expand(\n\t)) + LIBS += -L/usr/lib -lpthread + -AboutDialog.ui: Another futile attempt to make it look correct on Linux. + -FinalRenderDialog.h/cpp: + --Add support for multi-GPU. + --Change from combo boxes for device selection to a table of all devices. + --Ensure device selection makes sense. + --Remove "FinalRender" prefix of various function names, it's implied given the context. + -FinalRenderEmberController.h/cpp: + --Add support for multi-GPU. + --Change m_FinishedImageCount to be atomic. + --Move CancelRender() from the base to FinalRenderEmberController. + --Refactor RenderComplete() to omit any progress related functionality or image saving since it can be potentially ran in a thread. + --Consolidate setting various renderer fields into SyncGuiToRenderer(). + -Fractorium.cpp: Allow for resizing of the options dialog to show the entire device table. + -FractoriumCommon.h: Add various functions to handle a table showing the available OpenCL devices on the system. + -FractoriumEmberController.h/cpp: Remove m_FinalImageIndex, it's no longer needed. + -FractoriumRender.cpp: Scale the interactive sub batch count and quality by the number of devices used. + -FractoriumSettings.h/cpp: + --Temporal samples defaults to 100 instead of 1000 which was needless overkill. + --Add multi-GPU support, remove old device,platform pair. + -FractoriumToolbar.cpp: Disable OpenCL toolbar button if there are no devices present on the system. + -FractoriumOptionsDialog.h/cpp: + --Add support for multi-GPU. + --Consolidate more assignments in DataToGui(). + --Enable/disable CPU/OpenCL items in response to OpenCL checkbox event. + -Misc: Convert almost everything to size_t for unsigned, intmax_t for signed. + -Upgrade Intel Threading Building Blocks library to 4.4 + -Upgrade glm to 0.9.7 + -Add version resource files to Ember and EmberCL projects. + -Update copyright to 2015 for all version resources. + +0.4.1.8 Beta 01/23/2015 --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. diff --git a/Source/Ember/EmberDefines.h b/Source/Ember/EmberDefines.h index d11f8cf..ffe270c 100644 --- a/Source/Ember/EmberDefines.h +++ b/Source/Ember/EmberDefines.h @@ -42,7 +42,7 @@ namespace EmberNs { -#define EMBER_VERSION "0.4.1.9" +#define EMBER_VERSION "0.9.9.0" #define EPS6 T(1e-6) #define EPS std::numeric_limits::epsilon()//Apoplugin.h uses -20, but it's more mathematically correct to do it this way. #define ISAAC_SIZE 4 diff --git a/Source/EmberAnimate/EmberAnimate.rc b/Source/EmberAnimate/EmberAnimate.rc index 4784b2e..928cf94 100644 --- a/Source/EmberAnimate/EmberAnimate.rc +++ b/Source/EmberAnimate/EmberAnimate.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,4,1,9 - PRODUCTVERSION 0,4,1,9 + FILEVERSION 0,9,9,0 + PRODUCTVERSION 0,9,9,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Renders fractal flames as animations with motion blur" - VALUE "FileVersion", "0.4.1.9" - VALUE "InternalName", "EmberAnimate.rc" - VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2013, GPL v3" - VALUE "OriginalFilename", "EmberAnimate.rc" + VALUE "FileVersion", "0.9.9.0" + VALUE "InternalName", "EmberAnimate.exe" + VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2015, GPL v3" + VALUE "OriginalFilename", "EmberAnimate.exe" VALUE "ProductName", "Ember Animate" - VALUE "ProductVersion", "0.4.1.9" + VALUE "ProductVersion", "0.9.9.0" END END BLOCK "VarFileInfo" diff --git a/Source/EmberGenome/EmberGenome.rc b/Source/EmberGenome/EmberGenome.rc index 045fdab..e9cdc6f 100644 --- a/Source/EmberGenome/EmberGenome.rc +++ b/Source/EmberGenome/EmberGenome.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,4,1,9 - PRODUCTVERSION 0,4,1,9 + FILEVERSION 0,9,9,0 + PRODUCTVERSION 0,9,9,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Manipulates fractal flames parameter files" - VALUE "FileVersion", "0.4.1.9" - VALUE "InternalName", "EmberGenome.rc" - VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2013, GPL v3" - VALUE "OriginalFilename", "EmberGenome.rc" + VALUE "FileVersion", "0.9.9.0" + VALUE "InternalName", "EmberGenome.exe" + VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2015, GPL v3" + VALUE "OriginalFilename", "EmberGenome.exe" VALUE "ProductName", "Ember Genome" - VALUE "ProductVersion", "0.4.1.9" + VALUE "ProductVersion", "0.9.9.0" END END BLOCK "VarFileInfo" diff --git a/Source/EmberRender/EmberRender.rc b/Source/EmberRender/EmberRender.rc index 96dc832..3c1f2f9 100644 --- a/Source/EmberRender/EmberRender.rc +++ b/Source/EmberRender/EmberRender.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,4,1,9 - PRODUCTVERSION 0,4,1,9 + FILEVERSION 0,9,9,0 + PRODUCTVERSION 0,9,9,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Renders fractal flames as single images" - VALUE "FileVersion", "0.4.1.9" - VALUE "InternalName", "EmberRender.rc" - VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2013, GPL v3" - VALUE "OriginalFilename", "EmberRender.rc" + VALUE "FileVersion", "0.9.9.0" + VALUE "InternalName", "EmberRender.exe" + VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2015, GPL v3" + VALUE "OriginalFilename", "EmberRender.exe" VALUE "ProductName", "Ember Render" - VALUE "ProductVersion", "0.4.1.9" + VALUE "ProductVersion", "0.9.9.0" END END BLOCK "VarFileInfo" diff --git a/Source/EmberTester/EmberTester.cpp b/Source/EmberTester/EmberTester.cpp index dd8bd82..e3e5ffa 100644 --- a/Source/EmberTester/EmberTester.cpp +++ b/Source/EmberTester/EmberTester.cpp @@ -1924,10 +1924,13 @@ int _tmain(int argc, _TCHAR* argv[]) Timing t(4); QTIsaac rand(1, 2, 3); mt19937 meow(1729); + MakeTestAllVarsRegPrePostComboFile("testallvarsout.flame"); + return 0; - TestThreadedKernel(); - /*PaletteList palf; + /*TestThreadedKernel(); + + PaletteList palf; Palette* pal = palf.GetRandomPalette(); cout << pal->Size() << endl; @@ -2033,9 +2036,7 @@ int _tmain(int argc, _TCHAR* argv[]) //TestCross(rand.Frand(-5, 5), rand.Frand(-5, 5), rand.Frand(-5, 5)); //TestCross(rand.Frand(-5, 5), rand.Frand(-5, 5), rand.Frand(-5, 5)); //TestCross(rand.Frand(-5, 5), rand.Frand(-5, 5), rand.Frand(-5, 5)); - //MakeTestAllVarsRegPrePostComboFile("testallvarsout.flame"); - //return 0; - + //std::complex cd, cd2; //cd2 = sin(cd); diff --git a/Source/Fractorium/AboutDialog.ui b/Source/Fractorium/AboutDialog.ui index c87321e..893cf06 100644 --- a/Source/Fractorium/AboutDialog.ui +++ b/Source/Fractorium/AboutDialog.ui @@ -58,7 +58,7 @@ QFrame::NoFrame - <html><head/><body><p align="center"><br/>Fractorium 0.4.1.9 Beta</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"><span style=" font-size:10pt;">Lead: Matt Feemster<br/>Contributors: Simon Detheridge</span></p></body></html> + <html><head/><body><p align="center"><br/>Fractorium 0.9.9.0 Beta</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"><span style=" font-size:10pt;">Lead: Matt Feemster<br/>Contributors: Simon Detheridge</span></p></body></html> Qt::RichText diff --git a/Source/Fractorium/Fractorium.rc b/Source/Fractorium/Fractorium.rc index 4b10610..ad19f44 100644 Binary files a/Source/Fractorium/Fractorium.rc and b/Source/Fractorium/Fractorium.rc differ diff --git a/Source/Fractorium/VariationsDialog.cpp b/Source/Fractorium/VariationsDialog.cpp index b5c786e..d049b6d 100644 --- a/Source/Fractorium/VariationsDialog.cpp +++ b/Source/Fractorium/VariationsDialog.cpp @@ -22,10 +22,10 @@ FractoriumVariationsDialog::FractoriumVariationsDialog(FractoriumSettings* setti table->verticalHeader()->setSectionsClickable(true); table->horizontalHeader()->setSectionsClickable(true); table->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); - connect(table, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(OnVariationsTableItemChanged(QTableWidgetItem*)), Qt::QueuedConnection); - connect(ui.SelectAllButton, SIGNAL(clicked(bool)), this, SLOT(OnSelectAllButtonClicked(bool)), Qt::QueuedConnection); - connect(ui.InvertSelectionButton, SIGNAL(clicked(bool)), this, SLOT(OnInvertSelectionButtonClicked(bool)), Qt::QueuedConnection); - connect(ui.SelectNoneButton, SIGNAL(clicked(bool)), this, SLOT(OnSelectNoneButtonClicked(bool)), Qt::QueuedConnection); + connect(table, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(OnVariationsTableItemChanged(QTableWidgetItem*)), Qt::QueuedConnection); + connect(ui.SelectAllButton, SIGNAL(clicked(bool)), this, SLOT(OnSelectAllButtonClicked(bool)), Qt::QueuedConnection); + connect(ui.InvertSelectionButton, SIGNAL(clicked(bool)), this, SLOT(OnInvertSelectionButtonClicked(bool)), Qt::QueuedConnection); + connect(ui.SelectNoneButton, SIGNAL(clicked(bool)), this, SLOT(OnSelectNoneButtonClicked(bool)), Qt::QueuedConnection); } ///