2014-07-08 03:11:14 -04:00
|
|
|
#include "EmberPch.h"
|
|
|
|
#include "EmberDefines.h"
|
|
|
|
#include "Isaac.h"
|
2015-04-13 07:18:33 -04:00
|
|
|
|
|
|
|
namespace EmberNs
|
|
|
|
{
|
|
|
|
template<> unique_ptr<QTIsaac<ISAAC_SIZE, ISAAC_INT>> QTIsaac<ISAAC_SIZE, ISAAC_INT>::GlobalRand = unique_ptr<QTIsaac<ISAAC_SIZE, ISAAC_INT>>(new QTIsaac<ISAAC_SIZE, ISAAC_INT>());
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
CriticalSection QTIsaac<ISAAC_SIZE, ISAAC_INT>::m_CS;
|
2015-04-13 07:18:33 -04:00
|
|
|
}
|
|
|
|
|
2015-03-21 18:27:37 -04:00
|
|
|
#include "Curves.h"
|
2014-07-08 03:11:14 -04:00
|
|
|
#include "Ember.h"
|
|
|
|
#include "Utils.h"
|
|
|
|
#include "Iterator.h"
|
|
|
|
#include "Palette.h"
|
|
|
|
#include "PaletteList.h"
|
|
|
|
#include "Point.h"
|
|
|
|
#include "Variation.h"
|
|
|
|
#include "Variations01.h"
|
|
|
|
#include "Variations02.h"
|
|
|
|
#include "Variations03.h"
|
|
|
|
#include "Variations04.h"
|
|
|
|
#include "Variations05.h"
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
#include "Variations06.h"
|
2014-07-08 03:11:14 -04:00
|
|
|
#include "VariationsDC.h"
|
|
|
|
#include "VariationList.h"
|
|
|
|
#include "Affine2D.h"
|
|
|
|
#include "Xform.h"
|
2015-07-07 00:36:46 -04:00
|
|
|
#include "EmberMotion.h"
|
2014-07-08 03:11:14 -04:00
|
|
|
#include "EmberToXml.h"
|
|
|
|
#include "XmlToEmber.h"
|
|
|
|
#include "SpatialFilter.h"
|
|
|
|
#include "DensityFilter.h"
|
|
|
|
#include "TemporalFilter.h"
|
|
|
|
#include "Interpolate.h"
|
|
|
|
#include "Renderer.h"
|
|
|
|
#include "Timing.h"
|
|
|
|
#include "SheepTools.h"
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Explicit instantiation of all templated classes which aren't implemented in cpp files.
|
|
|
|
/// All new templated classes, such as new variations, must be added here.
|
|
|
|
/// Additional instances of static class member variables.
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
namespace EmberNs
|
|
|
|
{
|
|
|
|
bool Timing::m_TimingInit = false;
|
2014-12-11 00:50:15 -05:00
|
|
|
uint Timing::m_ProcessorCount;
|
2014-07-08 03:11:14 -04:00
|
|
|
|
|
|
|
#define EXPORTPREPOSTREGVAR(varName, T) \
|
|
|
|
template EMBER_API class varName##Variation<T>; \
|
|
|
|
template EMBER_API class Pre##varName##Variation<T>; \
|
|
|
|
template EMBER_API class Post##varName##Variation<T>;
|
|
|
|
|
|
|
|
#define EXPORT_SINGLE_TYPE_EMBER(T) \
|
2015-04-08 21:23:29 -04:00
|
|
|
template<> const char* PaletteList<T>::m_DefaultFilename = "flam3-palettes.xml"; \
|
|
|
|
template<> map<string, vector<Palette<T>>> PaletteList<T>::m_Palettes = map<string, vector<Palette<T>>>(); \
|
2015-01-14 04:39:42 -05:00
|
|
|
template<> bool XmlToEmber<T>::m_Init = false; \
|
|
|
|
template<> vector<string> XmlToEmber<T>::m_FlattenNames = vector<string>(); \
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
template<> unordered_map<string, string> XmlToEmber<T>::m_BadParamNames = unordered_map<string, string>(); \
|
2015-01-14 04:39:42 -05:00
|
|
|
template<> vector<pair<pair<string, string>, vector<string>>> XmlToEmber<T>::m_BadVariationNames = vector<pair<pair<string, string>, vector<string>>>(); \
|
2014-07-08 03:11:14 -04:00
|
|
|
template EMBER_API class Point<T>; \
|
2014-09-01 00:25:15 -04:00
|
|
|
template EMBER_API struct Color<T>; \
|
2014-07-08 03:11:14 -04:00
|
|
|
template EMBER_API class Palette<T>; \
|
|
|
|
template EMBER_API class PaletteList<T>; \
|
|
|
|
template EMBER_API class Iterator<T>; \
|
|
|
|
template EMBER_API class StandardIterator<T>; \
|
|
|
|
template EMBER_API class XaosIterator<T>; \
|
|
|
|
template EMBER_API class Xform<T>; \
|
2015-07-07 00:36:46 -04:00
|
|
|
template EMBER_API class MotionParam<T>; \
|
|
|
|
template EMBER_API class EmberMotion<T>; \
|
2014-07-08 03:11:14 -04:00
|
|
|
template EMBER_API class IteratorHelper<T>; \
|
|
|
|
template EMBER_API class Variation<T>; \
|
|
|
|
template EMBER_API class ParamWithName<T>; \
|
|
|
|
template EMBER_API class ParametricVariation<T>; \
|
|
|
|
EXPORTPREPOSTREGVAR(Linear, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sinusoidal, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Spherical, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Swirl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Horseshoe, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Polar, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Handkerchief, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Heart, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Disc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Spiral, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hyperbolic, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Diamond, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ex, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julia, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bent, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Waves, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fisheye, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Popcorn, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Exponential, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Power, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cosine, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rings, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fan, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blob, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Pdj, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fan2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rings2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Eyefish, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bubble, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cylinder, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Perspective, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Noise, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(JuliaNGeneric, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(JuliaScope, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(GaussianBlur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RadialBlur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Pie, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ngon, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Curl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rectangles, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Arch, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tangent, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Square, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rays, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blade, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Secant2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(TwinTrian, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cross, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Disc2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SuperShape, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Flower, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Conic, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Parabola, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bent2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bipolar, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Boarders, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Butterfly, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cell, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cpow, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Curve, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Edisc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Elliptic, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Escher, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Foci, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(LazySusan, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Loonie, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Modulus, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Oscilloscope, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Polar2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Popcorn2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Scry, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Separation, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Split, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Splits, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Stripes, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Wedge, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(WedgeJulia, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(WedgeSph, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Whorl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Waves2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Exp, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Log, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sin, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cos, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tan, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sec, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Csc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cot, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sinh, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cosh, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tanh, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sech, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Csch, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Coth, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Auger, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Flux, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hemisphere, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Epispiral, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bwraps, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Extrude, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurCircle, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurZoom, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurPixelize, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Crop, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BCircle, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurLinear, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurSquare, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Boarders2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cardioid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Checks, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Circlize, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Circlize2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CosWrap, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(DeltaA, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Expo, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(FDisc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fibonacci, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fibonacci2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Glynnia, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(GridOut, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hole, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile1, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile3D1, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile3D2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(IDisc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julian2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(JuliaQ, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Murl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Murl2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(NPolar, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ortho, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Poincare, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Poincare3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Polynomial, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(PSphere, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rational3, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ripple, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sigmoid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SinusGrid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Stwin, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(TwoFace, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Unpolar, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(WavesN, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(XHeart, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Barycentroid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BiSplit, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Crescents, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Mask, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cpow2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Curl3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Disc3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Funnel, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Linear3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(PowBlock, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Squirrel, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ennepers, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SphericalN, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Kaleidoscope, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(GlynnSim1, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(GlynnSim2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(GlynnSim3, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Starblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sineblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Circleblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CropN, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ShredRad, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blob2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julia3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julia3Dz, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(LinearT, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(LinearT3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ovoid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ovoid3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Spirograph, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Petal, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RoundSpher, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RoundSpher3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SpiralWing, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Squarize, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sschecks, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(PhoenixJulia, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Mobius, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(MobiusN, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(MobiusStrip, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Lissajous, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Svf, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Target, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Taurus, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Collideoscope, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BMod, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BSwirl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BTransform, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BCollide, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Eclipse, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(FlipCircle, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(FlipY, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ECollide, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(EJulia, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(EMod, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(EMotion, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(EPush, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ERotate, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(EScale, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ESwirl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(LazyTravis, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Squish, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Circus, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tancos, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rippled, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Flatten, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Zblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blur3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ZScale, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ZTranslate, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ZCone, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RotateX, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RotateY, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RotateZ, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(MirrorX, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(MirrorY, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(MirrorZ, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Depth, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RBlur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(JuliaNab, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sintrange, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Voron, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Waffle, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Square3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SuperShape3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sphyp3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Circlecrop, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julian3Dx, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fourth, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Mobiq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Spherivoid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Farblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CurlSP, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Heat, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Interference2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sinq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sinhq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Secq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sechq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tanq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tanhq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cosq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Coshq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cotq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cothq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cscq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cschq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Estiq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Loq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Curvature, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Qode, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurHeart, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Truchet, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Gdoffs, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Octagon, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Trade, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Juliac, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blade3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blob3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blocky, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bubble2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CircleLinear, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CircleRand, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CircleTrans1, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cubic3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CubicLattice3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Foci3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ho, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julia3Dq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Line, T) \
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
EXPORTPREPOSTREGVAR(Loonie2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Loonie3, T) \
|
2014-07-08 03:11:14 -04:00
|
|
|
EXPORTPREPOSTREGVAR(Loonie3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Mcarpet, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Waves23D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Pie3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Popcorn23D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sinusoidal3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Scry3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Shredlin, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SplitBrdr, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Wdisc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Falloff, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Falloff2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Falloff3, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Xtrb, T) \
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
EXPORTPREPOSTREGVAR(Hexaplay3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hexnix3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hexcrop, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hexes, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Nblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Octapol, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Crob, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BubbleT3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Synth, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(DCBubble, T) \
|
2014-07-08 03:11:14 -04:00
|
|
|
EXPORTPREPOSTREGVAR(DCCarpet, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(DCCube, T) \
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
EXPORTPREPOSTREGVAR(DCCylinder, T) \
|
2014-07-08 03:11:14 -04:00
|
|
|
EXPORTPREPOSTREGVAR(DCGridOut, T) \
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
EXPORTPREPOSTREGVAR(DCLinear, T) \
|
2014-07-08 03:11:14 -04:00
|
|
|
EXPORTPREPOSTREGVAR(DCZTransl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(DCTriangle, T) \
|
|
|
|
template EMBER_API class VariationList<T>; \
|
|
|
|
template EMBER_API class SpatialFilter<T>; \
|
|
|
|
template EMBER_API class GaussianFilter<T>; \
|
|
|
|
template EMBER_API class HermiteFilter<T>; \
|
|
|
|
template EMBER_API class BoxFilter<T>; \
|
|
|
|
template EMBER_API class TriangleFilter<T>; \
|
|
|
|
template EMBER_API class BellFilter<T>; \
|
|
|
|
template EMBER_API class BsplineFilter<T>; \
|
|
|
|
template EMBER_API class MitchellFilter<T>; \
|
|
|
|
template EMBER_API class BlackmanFilter<T>; \
|
|
|
|
template EMBER_API class CatromFilter<T>; \
|
|
|
|
template EMBER_API class HanningFilter<T>; \
|
|
|
|
template EMBER_API class HammingFilter<T>; \
|
|
|
|
template EMBER_API class Lanczos3Filter<T>; \
|
|
|
|
template EMBER_API class Lanczos2Filter<T>; \
|
|
|
|
template EMBER_API class QuadraticFilter<T>; \
|
|
|
|
template EMBER_API class DensityFilter<T>; \
|
|
|
|
template EMBER_API class TemporalFilter<T>; \
|
|
|
|
template EMBER_API class ExpTemporalFilter<T>; \
|
|
|
|
template EMBER_API class GaussianTemporalFilter<T>; \
|
|
|
|
template EMBER_API class BoxTemporalFilter<T>; \
|
|
|
|
template EMBER_API class SpatialFilterCreator<T>; \
|
|
|
|
template EMBER_API class TemporalFilterCreator<T>; \
|
|
|
|
template EMBER_API class Interpolater<T>; \
|
|
|
|
template EMBER_API class Ember<T>; \
|
|
|
|
/*template EMBER_API class RenderCallback<T>;*/ \
|
|
|
|
template EMBER_API class CarToRas<T>; \
|
2015-03-21 18:27:37 -04:00
|
|
|
template EMBER_API class Curves<T>; \
|
2014-07-08 03:11:14 -04:00
|
|
|
template EMBER_API class XmlToEmber<T>; \
|
2015-01-14 04:39:42 -05:00
|
|
|
template EMBER_API class EmberToXml<T>;
|
2014-07-08 03:11:14 -04:00
|
|
|
|
|
|
|
EXPORT_SINGLE_TYPE_EMBER(float)
|
|
|
|
|
|
|
|
#define EXPORT_TWO_TYPE_EMBER(T, bucketT) \
|
|
|
|
template EMBER_API class SheepTools<T, bucketT>;
|
|
|
|
|
|
|
|
EXPORT_TWO_TYPE_EMBER(float, float)
|
|
|
|
|
|
|
|
#ifdef DO_DOUBLE
|
|
|
|
EXPORT_SINGLE_TYPE_EMBER(double)
|
2015-08-10 23:10:23 -04:00
|
|
|
EXPORT_TWO_TYPE_EMBER(double, float)
|
2014-07-08 03:11:14 -04:00
|
|
|
#endif
|
2014-09-01 00:25:15 -04:00
|
|
|
}
|