diff --git a/Builds/CB/Ember.cbp b/Builds/CB/Ember.cbp
index f89144d..dfed5cc 100644
--- a/Builds/CB/Ember.cbp
+++ b/Builds/CB/Ember.cbp
@@ -98,6 +98,8 @@
+
+
diff --git a/Builds/CB/Ember.depend b/Builds/CB/Ember.depend
index 8d2ec01..751d8d5 100644
--- a/Builds/CB/Ember.depend
+++ b/Builds/CB/Ember.depend
@@ -1,9 +1,9 @@
# depslib dependency file v1.0
-1417821052 source:/home/heretic/Dev/fractorium/Source/Ember/Affine2D.cpp
+1417901704 source:/home/heretic/Dev/fractorium/Source/Ember/Affine2D.cpp
"EmberPch.h"
"Affine2D.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/EmberPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/EmberPch.h
@@ -35,6 +35,7 @@
"tbb/parallel_for.h"
"tbb/task_scheduler_init.h"
"glm/glm.hpp"
+ "glm/detail/type_int.hpp"
"glm/gtc/matrix_transform.hpp"
"glm/gtc/type_ptr.hpp"
"glm/gtx/string_cast.hpp"
@@ -160,22 +161,22 @@
-1417810095 /home/heretic/Dev/fractorium/Source/Ember/Affine2D.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Affine2D.h
"Utils.h"
-1417776440 /home/heretic/Dev/fractorium/Source/Ember/Utils.h
+1417905955 /home/heretic/Dev/fractorium/Source/Ember/Utils.h
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Isaac.h
+1417921234 /home/heretic/Dev/fractorium/Source/Ember/Isaac.h
"EmberDefines.h"
-1417811373 /home/heretic/Dev/fractorium/Source/Ember/EmberDefines.h
+1417917311 /home/heretic/Dev/fractorium/Source/Ember/EmberDefines.h
"EmberPch.h"
-1417760119 source:/home/heretic/Dev/fractorium/Source/Ember/DllMain.cpp
+1417901704 source:/home/heretic/Dev/fractorium/Source/Ember/DllMain.cpp
"EmberPch.h"
-1417813888 source:/home/heretic/Dev/fractorium/Source/Ember/Ember.cpp
+1417901704 source:/home/heretic/Dev/fractorium/Source/Ember/Ember.cpp
"EmberPch.h"
"EmberDefines.h"
"Isaac.h"
@@ -205,17 +206,17 @@
"Timing.h"
"SheepTools.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Ember.h
+1417915457 /home/heretic/Dev/fractorium/Source/Ember/Ember.h
"Xform.h"
"PaletteList.h"
"SpatialFilter.h"
"TemporalFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Xform.h
+1417908868 /home/heretic/Dev/fractorium/Source/Ember/Xform.h
"VariationList.h"
"Interpolate.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/VariationList.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/VariationList.h
"Variations01.h"
"Variations02.h"
"Variations03.h"
@@ -223,70 +224,70 @@
"Variations05.h"
"VariationsDC.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations01.h
+1417907217 /home/heretic/Dev/fractorium/Source/Ember/Variations01.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variation.h
+1417917944 /home/heretic/Dev/fractorium/Source/Ember/Variation.h
"Point.h"
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Point.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Point.h
"EmberDefines.h"
"Affine2D.h"
"Timing.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Timing.h
+1417906341 /home/heretic/Dev/fractorium/Source/Ember/Timing.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations02.h
+1417908486 /home/heretic/Dev/fractorium/Source/Ember/Variations02.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations03.h
+1417907820 /home/heretic/Dev/fractorium/Source/Ember/Variations03.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations04.h
+1417908559 /home/heretic/Dev/fractorium/Source/Ember/Variations04.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations05.h
+1417908258 /home/heretic/Dev/fractorium/Source/Ember/Variations05.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/VariationsDC.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/VariationsDC.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Interpolate.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Interpolate.h
"Ember.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/PaletteList.h
+1417909715 /home/heretic/Dev/fractorium/Source/Ember/PaletteList.h
"Palette.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Palette.h
+1417908559 /home/heretic/Dev/fractorium/Source/Ember/Palette.h
"Utils.h"
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/SpatialFilter.h
+1417907380 /home/heretic/Dev/fractorium/Source/Ember/SpatialFilter.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/TemporalFilter.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/TemporalFilter.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Iterator.h
+1417928702 /home/heretic/Dev/fractorium/Source/Ember/Iterator.h
"Ember.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/EmberToXml.h
+1417918151 /home/heretic/Dev/fractorium/Source/Ember/EmberToXml.h
"Utils.h"
"PaletteList.h"
"VariationList.h"
"Ember.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/XmlToEmber.h
+1417919921 /home/heretic/Dev/fractorium/Source/Ember/XmlToEmber.h
"Utils.h"
"PaletteList.h"
"VariationList.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/DensityFilter.h
+1417915259 /home/heretic/Dev/fractorium/Source/Ember/DensityFilter.h
"SpatialFilter.h"
-1417810944 /home/heretic/Dev/fractorium/Source/Ember/Renderer.h
+1417921679 /home/heretic/Dev/fractorium/Source/Ember/Renderer.h
"RendererBase.h"
"Iterator.h"
"SpatialFilter.h"
@@ -295,28 +296,28 @@
"CarToRas.h"
"EmberToXml.h"
-1417770762 /home/heretic/Dev/fractorium/Source/Ember/RendererBase.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/RendererBase.h
"Utils.h"
"Ember.h"
"DensityFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/CarToRas.h
+1417905627 /home/heretic/Dev/fractorium/Source/Ember/CarToRas.h
"Point.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/SheepTools.h
+1417905627 /home/heretic/Dev/fractorium/Source/Ember/SheepTools.h
"EmberDefines.h"
"Isaac.h"
"VariationList.h"
"Renderer.h"
-1417760119 source:/home/heretic/Dev/fractorium/Source/Ember/EmberPch.cpp
+1417901704 source:/home/heretic/Dev/fractorium/Source/Ember/EmberPch.cpp
"EmberPch.h"
-1417813874 source:/home/heretic/Dev/fractorium/Source/Ember/Renderer.cpp
+1417922137 source:/home/heretic/Dev/fractorium/Source/Ember/Renderer.cpp
"EmberPch.h"
"Renderer.h"
-1417760119 source:/home/heretic/Dev/fractorium/Source/Ember/RendererBase.cpp
+1417920290 source:/home/heretic/Dev/fractorium/Source/Ember/RendererBase.cpp
"EmberPch.h"
"RendererBase.h"
diff --git a/Builds/CB/Ember.layout b/Builds/CB/Ember.layout
index d71a35d..fd89704 100644
--- a/Builds/CB/Ember.layout
+++ b/Builds/CB/Ember.layout
@@ -1,139 +1,14 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -141,11 +16,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -153,22 +138,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Builds/CB/EmberAnimate.cbp b/Builds/CB/EmberAnimate.cbp
index af36919..c57f68b 100644
--- a/Builds/CB/EmberAnimate.cbp
+++ b/Builds/CB/EmberAnimate.cbp
@@ -76,6 +76,8 @@
+
+
diff --git a/Builds/CB/EmberAnimate.depend b/Builds/CB/EmberAnimate.depend
index c69478c..01dba0e 100644
--- a/Builds/CB/EmberAnimate.depend
+++ b/Builds/CB/EmberAnimate.depend
@@ -1,8 +1,8 @@
# depslib dependency file v1.0
-1417760119 source:/home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.cpp
+1417901704 source:/home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.cpp
"EmberCommonPch.h"
-1417812217 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.h
@@ -33,17 +33,17 @@
"SimpleGlob.h"
"SimpleOpt.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Ember.h
+1417915457 /home/heretic/Dev/fractorium/Source/Ember/Ember.h
"Xform.h"
"PaletteList.h"
"SpatialFilter.h"
"TemporalFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Xform.h
+1417908868 /home/heretic/Dev/fractorium/Source/Ember/Xform.h
"VariationList.h"
"Interpolate.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/VariationList.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/VariationList.h
"Variations01.h"
"Variations02.h"
"Variations03.h"
@@ -51,22 +51,22 @@
"Variations05.h"
"VariationsDC.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations01.h
+1417907217 /home/heretic/Dev/fractorium/Source/Ember/Variations01.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variation.h
+1417917944 /home/heretic/Dev/fractorium/Source/Ember/Variation.h
"Point.h"
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Point.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Point.h
"EmberDefines.h"
"Affine2D.h"
"Timing.h"
-1417811373 /home/heretic/Dev/fractorium/Source/Ember/EmberDefines.h
+1417917311 /home/heretic/Dev/fractorium/Source/Ember/EmberDefines.h
"EmberPch.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/EmberPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/EmberPch.h
@@ -98,6 +98,7 @@
"tbb/parallel_for.h"
"tbb/task_scheduler_init.h"
"glm/glm.hpp"
+ "glm/detail/type_int.hpp"
"glm/gtc/matrix_transform.hpp"
"glm/gtc/type_ptr.hpp"
"glm/gtx/string_cast.hpp"
@@ -223,64 +224,64 @@
-1417810095 /home/heretic/Dev/fractorium/Source/Ember/Affine2D.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Affine2D.h
"Utils.h"
-1417776440 /home/heretic/Dev/fractorium/Source/Ember/Utils.h
+1417905955 /home/heretic/Dev/fractorium/Source/Ember/Utils.h
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Isaac.h
+1417921234 /home/heretic/Dev/fractorium/Source/Ember/Isaac.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Timing.h
+1417906341 /home/heretic/Dev/fractorium/Source/Ember/Timing.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations02.h
+1417908486 /home/heretic/Dev/fractorium/Source/Ember/Variations02.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations03.h
+1417907820 /home/heretic/Dev/fractorium/Source/Ember/Variations03.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations04.h
+1417908559 /home/heretic/Dev/fractorium/Source/Ember/Variations04.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations05.h
+1417908258 /home/heretic/Dev/fractorium/Source/Ember/Variations05.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/VariationsDC.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/VariationsDC.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Interpolate.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Interpolate.h
"Ember.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/PaletteList.h
+1417909715 /home/heretic/Dev/fractorium/Source/Ember/PaletteList.h
"Palette.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Palette.h
+1417908559 /home/heretic/Dev/fractorium/Source/Ember/Palette.h
"Utils.h"
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/SpatialFilter.h
+1417907380 /home/heretic/Dev/fractorium/Source/Ember/SpatialFilter.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/TemporalFilter.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/TemporalFilter.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/EmberToXml.h
+1417918151 /home/heretic/Dev/fractorium/Source/Ember/EmberToXml.h
"Utils.h"
"PaletteList.h"
"VariationList.h"
"Ember.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/XmlToEmber.h
+1417919921 /home/heretic/Dev/fractorium/Source/Ember/XmlToEmber.h
"Utils.h"
"PaletteList.h"
"VariationList.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Iterator.h
+1417928702 /home/heretic/Dev/fractorium/Source/Ember/Iterator.h
"Ember.h"
-1417810944 /home/heretic/Dev/fractorium/Source/Ember/Renderer.h
+1417921679 /home/heretic/Dev/fractorium/Source/Ember/Renderer.h
"RendererBase.h"
"Iterator.h"
"SpatialFilter.h"
@@ -289,25 +290,25 @@
"CarToRas.h"
"EmberToXml.h"
-1417770762 /home/heretic/Dev/fractorium/Source/Ember/RendererBase.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/RendererBase.h
"Utils.h"
"Ember.h"
"DensityFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/DensityFilter.h
+1417915259 /home/heretic/Dev/fractorium/Source/Ember/DensityFilter.h
"SpatialFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/CarToRas.h
+1417905627 /home/heretic/Dev/fractorium/Source/Ember/CarToRas.h
"Point.h"
-1417828769 /home/heretic/Dev/fractorium/Source/EmberCL/RendererCL.h
+1417928136 /home/heretic/Dev/fractorium/Source/EmberCL/RendererCL.h
"EmberCLPch.h"
"OpenCLWrapper.h"
"IterOpenCLKernelCreator.h"
"DEOpenCLKernelCreator.h"
"FinalAccumOpenCLKernelCreator.h"
-1417766202 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLPch.h
"Timing.h"
"Renderer.h"
@@ -324,38 +325,38 @@
-1417770248 /home/heretic/Dev/fractorium/Source/EmberCL/OpenCLWrapper.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/OpenCLWrapper.h
"EmberCLPch.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/IterOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/IterOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417764380 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLStructs.h
+1417928227 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLStructs.h
"EmberCLPch.h"
-1417760119 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLFunctions.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLFunctions.h
"EmberCLPch.h"
"EmberCLStructs.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/DEOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/DEOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/FinalAccumOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/FinalAccumOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/SheepTools.h
+1417905627 /home/heretic/Dev/fractorium/Source/Ember/SheepTools.h
"EmberDefines.h"
"Isaac.h"
"VariationList.h"
"Renderer.h"
-1417816836 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleGlob.h
+1417934059 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleGlob.h
@@ -367,26 +368,26 @@
-1417817700 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleOpt.h
+1417934252 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleOpt.h
-1417821813 source:/home/heretic/Dev/fractorium/Source/EmberAnimate/EmberAnimate.cpp
+1417935223 source:/home/heretic/Dev/fractorium/Source/EmberAnimate/EmberAnimate.cpp
"EmberCommonPch.h"
"EmberAnimate.h"
"JpegUtils.h"
-1417760119 /home/heretic/Dev/fractorium/Source/EmberAnimate/EmberAnimate.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberAnimate/EmberAnimate.h
"EmberOptions.h"
-1417774919 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberOptions.h
+1417930466 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberOptions.h
"EmberCommon.h"
-1417760119 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommon.h
+1417930466 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommon.h
"EmberCommonPch.h"
-1417775759 /home/heretic/Dev/fractorium/Source/EmberCommon/JpegUtils.h
+1417932245 /home/heretic/Dev/fractorium/Source/EmberCommon/JpegUtils.h
"EmberCommonPch.h"
diff --git a/Builds/CB/EmberAnimate.layout b/Builds/CB/EmberAnimate.layout
index 6c4ae9b..1ce9e60 100644
--- a/Builds/CB/EmberAnimate.layout
+++ b/Builds/CB/EmberAnimate.layout
@@ -3,7 +3,12 @@
-
+
+
+
+
+
+
diff --git a/Builds/CB/EmberCL.cbp b/Builds/CB/EmberCL.cbp
index c7c627a..3a1bf14 100644
--- a/Builds/CB/EmberCL.cbp
+++ b/Builds/CB/EmberCL.cbp
@@ -149,6 +149,8 @@
+
+
diff --git a/Builds/CB/EmberCL.depend b/Builds/CB/EmberCL.depend
index c963baa..a03c297 100644
--- a/Builds/CB/EmberCL.depend
+++ b/Builds/CB/EmberCL.depend
@@ -1,9 +1,9 @@
# depslib dependency file v1.0
-1417814313 source:/home/heretic/Dev/fractorium/Source/EmberCL/DEOpenCLKernelCreator.cpp
+1417928577 source:/home/heretic/Dev/fractorium/Source/EmberCL/DEOpenCLKernelCreator.cpp
"EmberCLPch.h"
"DEOpenCLKernelCreator.h"
-1417766202 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLPch.h
"Timing.h"
"Renderer.h"
@@ -20,13 +20,13 @@
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Timing.h
+1417906341 /home/heretic/Dev/fractorium/Source/Ember//Timing.h
"EmberDefines.h"
-1417811373 /home/heretic/Dev/fractorium/Source/Ember//EmberDefines.h
+1417917311 /home/heretic/Dev/fractorium/Source/Ember//EmberDefines.h
"EmberPch.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//EmberPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember//EmberPch.h
@@ -58,6 +58,7 @@
"tbb/parallel_for.h"
"tbb/task_scheduler_init.h"
"glm/glm.hpp"
+ "glm/detail/type_int.hpp"
"glm/gtc/matrix_transform.hpp"
"glm/gtc/type_ptr.hpp"
"glm/gtx/string_cast.hpp"
@@ -183,7 +184,7 @@
-1417810944 /home/heretic/Dev/fractorium/Source/Ember//Renderer.h
+1417921679 /home/heretic/Dev/fractorium/Source/Ember//Renderer.h
"RendererBase.h"
"Iterator.h"
"SpatialFilter.h"
@@ -192,28 +193,28 @@
"CarToRas.h"
"EmberToXml.h"
-1417770762 /home/heretic/Dev/fractorium/Source/Ember//RendererBase.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember//RendererBase.h
"Utils.h"
"Ember.h"
"DensityFilter.h"
-1417776440 /home/heretic/Dev/fractorium/Source/Ember//Utils.h
+1417905955 /home/heretic/Dev/fractorium/Source/Ember//Utils.h
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Isaac.h
+1417921234 /home/heretic/Dev/fractorium/Source/Ember//Isaac.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Ember.h
+1417915457 /home/heretic/Dev/fractorium/Source/Ember//Ember.h
"Xform.h"
"PaletteList.h"
"SpatialFilter.h"
"TemporalFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Xform.h
+1417908868 /home/heretic/Dev/fractorium/Source/Ember//Xform.h
"VariationList.h"
"Interpolate.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//VariationList.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember//VariationList.h
"Variations01.h"
"Variations02.h"
"Variations03.h"
@@ -221,112 +222,112 @@
"Variations05.h"
"VariationsDC.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Variations01.h
+1417907217 /home/heretic/Dev/fractorium/Source/Ember//Variations01.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Variation.h
+1417917944 /home/heretic/Dev/fractorium/Source/Ember//Variation.h
"Point.h"
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Point.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember//Point.h
"EmberDefines.h"
"Affine2D.h"
"Timing.h"
-1417810095 /home/heretic/Dev/fractorium/Source/Ember//Affine2D.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember//Affine2D.h
"Utils.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Variations02.h
+1417908486 /home/heretic/Dev/fractorium/Source/Ember//Variations02.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Variations03.h
+1417907820 /home/heretic/Dev/fractorium/Source/Ember//Variations03.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Variations04.h
+1417908559 /home/heretic/Dev/fractorium/Source/Ember//Variations04.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Variations05.h
+1417908258 /home/heretic/Dev/fractorium/Source/Ember//Variations05.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//VariationsDC.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember//VariationsDC.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Interpolate.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember//Interpolate.h
"Ember.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//PaletteList.h
+1417909715 /home/heretic/Dev/fractorium/Source/Ember//PaletteList.h
"Palette.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Palette.h
+1417908559 /home/heretic/Dev/fractorium/Source/Ember//Palette.h
"Utils.h"
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//SpatialFilter.h
+1417907380 /home/heretic/Dev/fractorium/Source/Ember//SpatialFilter.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//TemporalFilter.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember//TemporalFilter.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//DensityFilter.h
+1417915259 /home/heretic/Dev/fractorium/Source/Ember//DensityFilter.h
"SpatialFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//Iterator.h
+1417928702 /home/heretic/Dev/fractorium/Source/Ember//Iterator.h
"Ember.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//CarToRas.h
+1417905627 /home/heretic/Dev/fractorium/Source/Ember//CarToRas.h
"Point.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember//EmberToXml.h
+1417918151 /home/heretic/Dev/fractorium/Source/Ember//EmberToXml.h
"Utils.h"
"PaletteList.h"
"VariationList.h"
"Ember.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/DEOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/DEOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417764380 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLStructs.h
+1417928227 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLStructs.h
"EmberCLPch.h"
-1417760119 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLFunctions.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLFunctions.h
"EmberCLPch.h"
"EmberCLStructs.h"
-1417760119 source:/home/heretic/Dev/fractorium/Source/EmberCL/DllMain.cpp
+1417901704 source:/home/heretic/Dev/fractorium/Source/EmberCL/DllMain.cpp
"EmberCLPch.h"
-1417814313 source:/home/heretic/Dev/fractorium/Source/EmberCL/FinalAccumOpenCLKernelCreator.cpp
+1417901704 source:/home/heretic/Dev/fractorium/Source/EmberCL/FinalAccumOpenCLKernelCreator.cpp
"EmberCLPch.h"
"FinalAccumOpenCLKernelCreator.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/FinalAccumOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/FinalAccumOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417814434 source:/home/heretic/Dev/fractorium/Source/EmberCL/IterOpenCLKernelCreator.cpp
+1417901704 source:/home/heretic/Dev/fractorium/Source/EmberCL/IterOpenCLKernelCreator.cpp
"EmberCLPch.h"
"IterOpenCLKernelCreator.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/IterOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/IterOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417814434 source:/home/heretic/Dev/fractorium/Source/EmberCL/OpenCLWrapper.cpp
+1417929845 source:/home/heretic/Dev/fractorium/Source/EmberCL/OpenCLWrapper.cpp
"EmberCLPch.h"
"OpenCLWrapper.h"
-1417770248 /home/heretic/Dev/fractorium/Source/EmberCL/OpenCLWrapper.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/OpenCLWrapper.h
"EmberCLPch.h"
-1417829447 source:/home/heretic/Dev/fractorium/Source/EmberCL/RendererCL.cpp
+1417926792 source:/home/heretic/Dev/fractorium/Source/EmberCL/RendererCL.cpp
"EmberCLPch.h"
"RendererCL.h"
-1417828769 /home/heretic/Dev/fractorium/Source/EmberCL/RendererCL.h
+1417928136 /home/heretic/Dev/fractorium/Source/EmberCL/RendererCL.h
"EmberCLPch.h"
"OpenCLWrapper.h"
"IterOpenCLKernelCreator.h"
diff --git a/Builds/CB/EmberCL.layout b/Builds/CB/EmberCL.layout
index 0f90453..6d66f54 100644
--- a/Builds/CB/EmberCL.layout
+++ b/Builds/CB/EmberCL.layout
@@ -1,44 +1,14 @@
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -46,29 +16,59 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Builds/CB/EmberGenome.cbp b/Builds/CB/EmberGenome.cbp
index 93aa007..168a8c3 100644
--- a/Builds/CB/EmberGenome.cbp
+++ b/Builds/CB/EmberGenome.cbp
@@ -76,6 +76,8 @@
+
+
diff --git a/Builds/CB/EmberGenome.depend b/Builds/CB/EmberGenome.depend
index 39b448a..37d137e 100644
--- a/Builds/CB/EmberGenome.depend
+++ b/Builds/CB/EmberGenome.depend
@@ -1,8 +1,8 @@
# depslib dependency file v1.0
-1417760119 source:/home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.cpp
+1417901704 source:/home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.cpp
"EmberCommonPch.h"
-1417812217 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.h
@@ -33,17 +33,17 @@
"SimpleGlob.h"
"SimpleOpt.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Ember.h
+1417915457 /home/heretic/Dev/fractorium/Source/Ember/Ember.h
"Xform.h"
"PaletteList.h"
"SpatialFilter.h"
"TemporalFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Xform.h
+1417908868 /home/heretic/Dev/fractorium/Source/Ember/Xform.h
"VariationList.h"
"Interpolate.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/VariationList.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/VariationList.h
"Variations01.h"
"Variations02.h"
"Variations03.h"
@@ -51,22 +51,22 @@
"Variations05.h"
"VariationsDC.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations01.h
+1417907217 /home/heretic/Dev/fractorium/Source/Ember/Variations01.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variation.h
+1417917944 /home/heretic/Dev/fractorium/Source/Ember/Variation.h
"Point.h"
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Point.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Point.h
"EmberDefines.h"
"Affine2D.h"
"Timing.h"
-1417811373 /home/heretic/Dev/fractorium/Source/Ember/EmberDefines.h
+1417917311 /home/heretic/Dev/fractorium/Source/Ember/EmberDefines.h
"EmberPch.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/EmberPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/EmberPch.h
@@ -98,6 +98,7 @@
"tbb/parallel_for.h"
"tbb/task_scheduler_init.h"
"glm/glm.hpp"
+ "glm/detail/type_int.hpp"
"glm/gtc/matrix_transform.hpp"
"glm/gtc/type_ptr.hpp"
"glm/gtx/string_cast.hpp"
@@ -223,64 +224,64 @@
-1417810095 /home/heretic/Dev/fractorium/Source/Ember/Affine2D.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Affine2D.h
"Utils.h"
-1417776440 /home/heretic/Dev/fractorium/Source/Ember/Utils.h
+1417905955 /home/heretic/Dev/fractorium/Source/Ember/Utils.h
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Isaac.h
+1417921234 /home/heretic/Dev/fractorium/Source/Ember/Isaac.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Timing.h
+1417906341 /home/heretic/Dev/fractorium/Source/Ember/Timing.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations02.h
+1417908486 /home/heretic/Dev/fractorium/Source/Ember/Variations02.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations03.h
+1417907820 /home/heretic/Dev/fractorium/Source/Ember/Variations03.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations04.h
+1417908559 /home/heretic/Dev/fractorium/Source/Ember/Variations04.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations05.h
+1417908258 /home/heretic/Dev/fractorium/Source/Ember/Variations05.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/VariationsDC.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/VariationsDC.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Interpolate.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Interpolate.h
"Ember.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/PaletteList.h
+1417909715 /home/heretic/Dev/fractorium/Source/Ember/PaletteList.h
"Palette.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Palette.h
+1417908559 /home/heretic/Dev/fractorium/Source/Ember/Palette.h
"Utils.h"
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/SpatialFilter.h
+1417907380 /home/heretic/Dev/fractorium/Source/Ember/SpatialFilter.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/TemporalFilter.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/TemporalFilter.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/EmberToXml.h
+1417918151 /home/heretic/Dev/fractorium/Source/Ember/EmberToXml.h
"Utils.h"
"PaletteList.h"
"VariationList.h"
"Ember.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/XmlToEmber.h
+1417919921 /home/heretic/Dev/fractorium/Source/Ember/XmlToEmber.h
"Utils.h"
"PaletteList.h"
"VariationList.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Iterator.h
+1417928702 /home/heretic/Dev/fractorium/Source/Ember/Iterator.h
"Ember.h"
-1417810944 /home/heretic/Dev/fractorium/Source/Ember/Renderer.h
+1417921679 /home/heretic/Dev/fractorium/Source/Ember/Renderer.h
"RendererBase.h"
"Iterator.h"
"SpatialFilter.h"
@@ -289,25 +290,25 @@
"CarToRas.h"
"EmberToXml.h"
-1417770762 /home/heretic/Dev/fractorium/Source/Ember/RendererBase.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/RendererBase.h
"Utils.h"
"Ember.h"
"DensityFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/DensityFilter.h
+1417915259 /home/heretic/Dev/fractorium/Source/Ember/DensityFilter.h
"SpatialFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/CarToRas.h
+1417905627 /home/heretic/Dev/fractorium/Source/Ember/CarToRas.h
"Point.h"
-1417828769 /home/heretic/Dev/fractorium/Source/EmberCL/RendererCL.h
+1417928136 /home/heretic/Dev/fractorium/Source/EmberCL/RendererCL.h
"EmberCLPch.h"
"OpenCLWrapper.h"
"IterOpenCLKernelCreator.h"
"DEOpenCLKernelCreator.h"
"FinalAccumOpenCLKernelCreator.h"
-1417766202 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLPch.h
"Timing.h"
"Renderer.h"
@@ -324,38 +325,38 @@
-1417770248 /home/heretic/Dev/fractorium/Source/EmberCL/OpenCLWrapper.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/OpenCLWrapper.h
"EmberCLPch.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/IterOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/IterOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417764380 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLStructs.h
+1417928227 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLStructs.h
"EmberCLPch.h"
-1417760119 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLFunctions.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLFunctions.h
"EmberCLPch.h"
"EmberCLStructs.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/DEOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/DEOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/FinalAccumOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/FinalAccumOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/SheepTools.h
+1417905627 /home/heretic/Dev/fractorium/Source/Ember/SheepTools.h
"EmberDefines.h"
"Isaac.h"
"VariationList.h"
"Renderer.h"
-1417816836 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleGlob.h
+1417934059 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleGlob.h
@@ -367,26 +368,26 @@
-1417817700 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleOpt.h
+1417934252 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleOpt.h
-1417823420 source:/home/heretic/Dev/fractorium/Source/EmberGenome/EmberGenome.cpp
+1417901704 source:/home/heretic/Dev/fractorium/Source/EmberGenome/EmberGenome.cpp
"EmberCommonPch.h"
"EmberGenome.h"
"JpegUtils.h"
-1417760119 /home/heretic/Dev/fractorium/Source/EmberGenome/EmberGenome.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberGenome/EmberGenome.h
"EmberOptions.h"
-1417774919 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberOptions.h
+1417930466 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberOptions.h
"EmberCommon.h"
-1417760119 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommon.h
+1417930466 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommon.h
"EmberCommonPch.h"
-1417775759 /home/heretic/Dev/fractorium/Source/EmberCommon/JpegUtils.h
+1417932245 /home/heretic/Dev/fractorium/Source/EmberCommon/JpegUtils.h
"EmberCommonPch.h"
diff --git a/Builds/CB/EmberGenome.layout b/Builds/CB/EmberGenome.layout
index d84f586..93cc027 100644
--- a/Builds/CB/EmberGenome.layout
+++ b/Builds/CB/EmberGenome.layout
@@ -1,14 +1,9 @@
-
+
-
-
-
-
-
-
+
@@ -21,7 +16,7 @@
-
+
@@ -31,7 +26,12 @@
-
+
+
+
+
+
+
diff --git a/Builds/CB/EmberRender.cbp b/Builds/CB/EmberRender.cbp
index fc68f0b..2175287 100644
--- a/Builds/CB/EmberRender.cbp
+++ b/Builds/CB/EmberRender.cbp
@@ -136,6 +136,8 @@
+
+
diff --git a/Builds/CB/EmberRender.depend b/Builds/CB/EmberRender.depend
index 587bffc..7675f50 100644
--- a/Builds/CB/EmberRender.depend
+++ b/Builds/CB/EmberRender.depend
@@ -1,8 +1,8 @@
# depslib dependency file v1.0
-1417760119 source:/home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.cpp
+1417901704 source:/home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.cpp
"EmberCommonPch.h"
-1417812217 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommonPch.h
@@ -33,17 +33,17 @@
"SimpleGlob.h"
"SimpleOpt.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Ember.h
+1417915457 /home/heretic/Dev/fractorium/Source/Ember/Ember.h
"Xform.h"
"PaletteList.h"
"SpatialFilter.h"
"TemporalFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Xform.h
+1417908868 /home/heretic/Dev/fractorium/Source/Ember/Xform.h
"VariationList.h"
"Interpolate.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/VariationList.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/VariationList.h
"Variations01.h"
"Variations02.h"
"Variations03.h"
@@ -51,22 +51,22 @@
"Variations05.h"
"VariationsDC.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations01.h
+1417907217 /home/heretic/Dev/fractorium/Source/Ember/Variations01.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variation.h
+1417917944 /home/heretic/Dev/fractorium/Source/Ember/Variation.h
"Point.h"
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Point.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Point.h
"EmberDefines.h"
"Affine2D.h"
"Timing.h"
-1417811373 /home/heretic/Dev/fractorium/Source/Ember/EmberDefines.h
+1417917311 /home/heretic/Dev/fractorium/Source/Ember/EmberDefines.h
"EmberPch.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/EmberPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/EmberPch.h
@@ -98,6 +98,7 @@
"tbb/parallel_for.h"
"tbb/task_scheduler_init.h"
"glm/glm.hpp"
+ "glm/detail/type_int.hpp"
"glm/gtc/matrix_transform.hpp"
"glm/gtc/type_ptr.hpp"
"glm/gtx/string_cast.hpp"
@@ -223,64 +224,64 @@
-1417810095 /home/heretic/Dev/fractorium/Source/Ember/Affine2D.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Affine2D.h
"Utils.h"
-1417776440 /home/heretic/Dev/fractorium/Source/Ember/Utils.h
+1417905955 /home/heretic/Dev/fractorium/Source/Ember/Utils.h
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Isaac.h
+1417921234 /home/heretic/Dev/fractorium/Source/Ember/Isaac.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Timing.h
+1417906341 /home/heretic/Dev/fractorium/Source/Ember/Timing.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations02.h
+1417908486 /home/heretic/Dev/fractorium/Source/Ember/Variations02.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations03.h
+1417907820 /home/heretic/Dev/fractorium/Source/Ember/Variations03.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations04.h
+1417908559 /home/heretic/Dev/fractorium/Source/Ember/Variations04.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Variations05.h
+1417908258 /home/heretic/Dev/fractorium/Source/Ember/Variations05.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/VariationsDC.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/VariationsDC.h
"Variation.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Interpolate.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/Interpolate.h
"Ember.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/PaletteList.h
+1417909715 /home/heretic/Dev/fractorium/Source/Ember/PaletteList.h
"Palette.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Palette.h
+1417908559 /home/heretic/Dev/fractorium/Source/Ember/Palette.h
"Utils.h"
"Isaac.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/SpatialFilter.h
+1417907380 /home/heretic/Dev/fractorium/Source/Ember/SpatialFilter.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/TemporalFilter.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/TemporalFilter.h
"EmberDefines.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/EmberToXml.h
+1417918151 /home/heretic/Dev/fractorium/Source/Ember/EmberToXml.h
"Utils.h"
"PaletteList.h"
"VariationList.h"
"Ember.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/XmlToEmber.h
+1417919921 /home/heretic/Dev/fractorium/Source/Ember/XmlToEmber.h
"Utils.h"
"PaletteList.h"
"VariationList.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/Iterator.h
+1417928702 /home/heretic/Dev/fractorium/Source/Ember/Iterator.h
"Ember.h"
-1417810944 /home/heretic/Dev/fractorium/Source/Ember/Renderer.h
+1417921679 /home/heretic/Dev/fractorium/Source/Ember/Renderer.h
"RendererBase.h"
"Iterator.h"
"SpatialFilter.h"
@@ -289,25 +290,25 @@
"CarToRas.h"
"EmberToXml.h"
-1417770762 /home/heretic/Dev/fractorium/Source/Ember/RendererBase.h
+1417901704 /home/heretic/Dev/fractorium/Source/Ember/RendererBase.h
"Utils.h"
"Ember.h"
"DensityFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/DensityFilter.h
+1417915259 /home/heretic/Dev/fractorium/Source/Ember/DensityFilter.h
"SpatialFilter.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/CarToRas.h
+1417905627 /home/heretic/Dev/fractorium/Source/Ember/CarToRas.h
"Point.h"
-1417828769 /home/heretic/Dev/fractorium/Source/EmberCL/RendererCL.h
+1417928136 /home/heretic/Dev/fractorium/Source/EmberCL/RendererCL.h
"EmberCLPch.h"
"OpenCLWrapper.h"
"IterOpenCLKernelCreator.h"
"DEOpenCLKernelCreator.h"
"FinalAccumOpenCLKernelCreator.h"
-1417766202 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLPch.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLPch.h
"Timing.h"
"Renderer.h"
@@ -324,38 +325,38 @@
-1417770248 /home/heretic/Dev/fractorium/Source/EmberCL/OpenCLWrapper.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/OpenCLWrapper.h
"EmberCLPch.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/IterOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/IterOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417764380 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLStructs.h
+1417928227 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLStructs.h
"EmberCLPch.h"
-1417760119 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLFunctions.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/EmberCLFunctions.h
"EmberCLPch.h"
"EmberCLStructs.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/DEOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/DEOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417816098 /home/heretic/Dev/fractorium/Source/EmberCL/FinalAccumOpenCLKernelCreator.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberCL/FinalAccumOpenCLKernelCreator.h
"EmberCLPch.h"
"EmberCLStructs.h"
"EmberCLFunctions.h"
-1417760119 /home/heretic/Dev/fractorium/Source/Ember/SheepTools.h
+1417905627 /home/heretic/Dev/fractorium/Source/Ember/SheepTools.h
"EmberDefines.h"
"Isaac.h"
"VariationList.h"
"Renderer.h"
-1417816836 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleGlob.h
+1417934059 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleGlob.h
@@ -367,26 +368,26 @@
-1417817700 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleOpt.h
+1417934252 /home/heretic/Dev/fractorium/Source/EmberCommon/SimpleOpt.h
-1417826935 source:/home/heretic/Dev/fractorium/Source/EmberRender/EmberRender.cpp
+1417931774 source:/home/heretic/Dev/fractorium/Source/EmberRender/EmberRender.cpp
"EmberCommonPch.h"
"EmberRender.h"
"JpegUtils.h"
-1417760119 /home/heretic/Dev/fractorium/Source/EmberRender/EmberRender.h
+1417901704 /home/heretic/Dev/fractorium/Source/EmberRender/EmberRender.h
"EmberOptions.h"
-1417774919 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberOptions.h
+1417930466 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberOptions.h
"EmberCommon.h"
-1417760119 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommon.h
+1417930466 /home/heretic/Dev/fractorium/Source/EmberCommon/EmberCommon.h
"EmberCommonPch.h"
-1417775759 /home/heretic/Dev/fractorium/Source/EmberCommon/JpegUtils.h
+1417932245 /home/heretic/Dev/fractorium/Source/EmberCommon/JpegUtils.h
"EmberCommonPch.h"
diff --git a/Builds/CB/EmberRender.layout b/Builds/CB/EmberRender.layout
index 0e85420..091afe1 100644
--- a/Builds/CB/EmberRender.layout
+++ b/Builds/CB/EmberRender.layout
@@ -1,6 +1,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -8,27 +18,22 @@
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/Builds/CB/fractorium.workspace.layout b/Builds/CB/fractorium.workspace.layout
index 4647952..db9effd 100644
--- a/Builds/CB/fractorium.workspace.layout
+++ b/Builds/CB/fractorium.workspace.layout
@@ -1,4 +1,5 @@
+
diff --git a/Source/Ember/CarToRas.h b/Source/Ember/CarToRas.h
index af920c5..89c5381 100644
--- a/Source/Ember/CarToRas.h
+++ b/Source/Ember/CarToRas.h
@@ -128,10 +128,10 @@ public:
T invSizeW = T(1.0) / carW;
T invSizeH = T(1.0) / carH;
- m_PixPerImageUnitW = (T)rasW * invSizeW;
+ m_PixPerImageUnitW = static_cast(rasW) * invSizeW;
m_RasLlX = m_PixPerImageUnitW * carLlX;
- m_PixPerImageUnitH = (T)rasH * invSizeH;
+ m_PixPerImageUnitH = static_cast(rasH) * invSizeH;
m_RasLlY = m_PixPerImageUnitH * carLlY;
m_OneRow = abs(m_CarUrY - m_CarLlY) / m_RasHeight;
@@ -158,8 +158,8 @@ public:
/// The converted raster y
inline void Convert(T cartX, T cartY, size_t& rasX, size_t& rasY)
{
- rasX = (size_t)(m_PixPerImageUnitW * cartX - m_RasLlX);
- rasY = (size_t)(m_RasLlY - (m_PixPerImageUnitH * cartY));
+ rasX = static_cast(m_PixPerImageUnitW * cartX - m_RasLlX);
+ rasY = static_cast(m_RasLlY - (m_PixPerImageUnitH * cartY));
}
///
@@ -175,7 +175,7 @@ public:
/// The converted single raster buffer index
inline void Convert(T cartX, T cartY, size_t& singleBufferIndex)
{
- singleBufferIndex = (size_t)(m_PixPerImageUnitW * cartX - m_RasLlX) + (m_RasWidth * (size_t)(m_PixPerImageUnitH * cartY - m_RasLlY));
+ singleBufferIndex = static_cast(m_PixPerImageUnitW * cartX - m_RasLlX) + (m_RasWidth * static_cast(m_PixPerImageUnitH * cartY - m_RasLlY));
}
///
@@ -192,7 +192,7 @@ public:
/// The converted single raster buffer index
inline void Convert(Point& point, size_t& singleBufferIndex)
{
- singleBufferIndex = (size_t)(m_PixPerImageUnitW * point.m_X - m_RasLlX) + (m_RasWidth * (size_t)(m_PixPerImageUnitH * point.m_Y - m_RasLlY));
+ singleBufferIndex = static_cast(m_PixPerImageUnitW * point.m_X - m_RasLlX) + (m_RasWidth * static_cast(m_PixPerImageUnitH * point.m_Y - m_RasLlY));
}
///
diff --git a/Source/Ember/DensityFilter.h b/Source/Ember/DensityFilter.h
index 2757a37..01f5c9d 100644
--- a/Source/Ember/DensityFilter.h
+++ b/Source/Ember/DensityFilter.h
@@ -128,13 +128,13 @@ public:
if (decFilterCount > 1e7)//Too many filters.
return false;
- intFilterCount = (int)ceil(decFilterCount);
+ intFilterCount = static_cast(ceil(decFilterCount));
//Condense the smaller kernels to save space.
if (intFilterCount > keepThresh)
{
- maxIndex = (int)ceil(DE_THRESH + pow(T(intFilterCount - DE_THRESH), m_Curve)) + 1;
- m_MaxFilteredCounts = (int)pow(T(maxIndex - DE_THRESH), T(1.0) / m_Curve) + DE_THRESH;
+ maxIndex = static_cast(ceil(DE_THRESH + pow(T(intFilterCount - DE_THRESH), m_Curve))) + 1;
+ m_MaxFilteredCounts = static_cast(pow(T(maxIndex - DE_THRESH), T(1.0) / m_Curve)) + DE_THRESH;
}
else
{
@@ -143,7 +143,7 @@ public:
}
//Allocate the memory for these filters and the hit/width lookup array.
- rowSize = (int)(2 * ceil(finalMaxRad) - 1);
+ rowSize = static_cast(2 * ceil(finalMaxRad) - 1);
m_FilterWidth = (rowSize - 1) / 2;
m_KernelSize = (m_FilterWidth + 1) * (2 + m_FilterWidth) / 2;
@@ -185,7 +185,7 @@ public:
{
for (dek = -m_FilterWidth; dek <= m_FilterWidth; dek++)
{
- filterVal = sqrt((T)(dej * dej + dek * dek)) / filterHeight;
+ filterVal = sqrt(T(dej * dej + dek * dek)) / filterHeight;
//Only populate the coefs within this radius.
if (filterVal <= 1.0)
@@ -344,4 +344,4 @@ private:
vector m_Widths;
vector m_CoefIndices;
};
-}
\ No newline at end of file
+}
diff --git a/Source/Ember/Ember.h b/Source/Ember/Ember.h
index e3a4b79..e71ad62 100644
--- a/Source/Ember/Ember.h
+++ b/Source/Ember/Ember.h
@@ -370,7 +370,7 @@ public:
Xform* GetXform(size_t i) const
{
if (i < XformCount())
- return (Xform*)&m_Xforms[i];
+ return const_cast*>(&m_Xforms[i]);
else
return nullptr;
}
@@ -384,9 +384,9 @@ public:
Xform* GetTotalXform(size_t i, bool forceFinal = false) const
{
if (i < XformCount())
- return (Xform*)&m_Xforms[i];
+ return const_cast*>(&m_Xforms[i]);
else if (i == XformCount() || forceFinal)
- return (Xform*)&m_FinalXform;
+ return const_cast*>(&m_FinalXform);
else
return nullptr;
}
@@ -402,7 +402,7 @@ public:
for (size_t i = 0; i < m_Xforms.size(); i++)
if (GetXform(i) == xform)
- return (intmax_t)i;
+ return intmax_t(i);
return index;
}
@@ -418,7 +418,7 @@ public:
for (size_t i = 0; i < totalXformCount; i++)
if (GetTotalXform(i) == xform)
- return (intmax_t)i;
+ return intmax_t(i);
return -1;
}
@@ -1478,7 +1478,7 @@ public:
//The multiplier in size of the histogram and DE filtering buffers. Must be at least one, preferrably never larger than 4, only useful at 2.
//Xml field: "supersample" or "overample (deprecated)".
size_t m_Supersample;
-
+
//When animating, split each pass into this many pieces, each doing a fraction of the total iterations. Each temporal sample
//will render an interpolated instance of the ember that is a fraction of the current ember and the next one.
//When rendering a single image, this field is always set to 1.
@@ -1711,7 +1711,7 @@ private:
for (size_t k = 0; k < size; k++)
t += coefs[k] * embers[k].*m;
- this->*m = (size_t)Rint(t);
+ this->*m = size_t(Rint(t));
}
///
diff --git a/Source/Ember/EmberDefines.h b/Source/Ember/EmberDefines.h
index cc0d6fc..6d9eebd 100644
--- a/Source/Ember/EmberDefines.h
+++ b/Source/Ember/EmberDefines.h
@@ -61,7 +61,10 @@ namespace EmberNs
#define COLORMAP_LENGTH_MINUS_1 255
#define WHITE 255
#define DEFAULT_SBS (1024 * 10)
-#define XC (const xmlChar*)
+//#define XC(c) ((const xmlChar*)(c))
+#define XC(c) (reinterpret_cast(c))
+#define CX(c) (reinterpret_cast(c))
+#define CCX(c) (reinterpret_cast(c))
#define BadVal(x) (((x) != (x)) || ((x) > 1e10) || ((x) < -1e10))
#define Rint(A) floor((A) + (((A) < 0) ? T(-0.5) : T(0.5)))
#define Vlen(x) (sizeof(x) / sizeof(*x))
diff --git a/Source/Ember/EmberToXml.h b/Source/Ember/EmberToXml.h
index 7b59877..7e0b24a 100644
--- a/Source/Ember/EmberToXml.h
+++ b/Source/Ember/EmberToXml.h
@@ -231,9 +231,9 @@ public:
{
size_t idx = 8 * i + j;
- os << hex << setw(2) << setfill('0') << (int)Rint(ember.m_Palette[idx][0] * 255);
- os << hex << setw(2) << setfill('0') << (int)Rint(ember.m_Palette[idx][1] * 255);
- os << hex << setw(2) << setfill('0') << (int)Rint(ember.m_Palette[idx][2] * 255);
+ os << hex << setw(2) << setfill('0') << int(Rint(ember.m_Palette[idx][0] * 255));
+ os << hex << setw(2) << setfill('0') << int(Rint(ember.m_Palette[idx][1] * 255));
+ os << hex << setw(2) << setfill('0') << int(Rint(ember.m_Palette[idx][2] * 255));
}
os << endl;
@@ -255,14 +255,14 @@ public:
if (IsClose(a, 255.0))
{
if (intPalette)
- os << "";
+ os << "";
else
os << "";
}
else
{
if (intPalette)
- os << " ";
+ os << " ";
else
os << " ";
}
@@ -300,13 +300,13 @@ public:
time_t myTime;
string s;
xmlDocPtr commentDoc = nullptr;
- xmlDocPtr doc = xmlNewDoc(XC "1.0");
+ xmlDocPtr doc = xmlNewDoc(XC("1.0"));
xmlNodePtr rootNode = nullptr, node = nullptr, nodeCopy = nullptr;
xmlNodePtr rootComment = nullptr;
ostringstream os;
//Create the root node, called "edit".
- rootNode = xmlNewNode(nullptr, XC "edit");
+ rootNode = xmlNewNode(nullptr, XC("edit"));
xmlDocSetRootElement(doc, rootNode);
//Add the edit attributes.
@@ -321,37 +321,37 @@ public:
localt = localtime(&myTime);
strftime(timeString, 128, "%a %b %d %H:%M:%S %z %Y", localt);//XXX use standard time format including timezone.
#endif
- xmlNewProp(rootNode, XC "date", XC timeString);
+ xmlNewProp(rootNode, XC("date"), XC(timeString));
//Nick.
if (nick != "")
- xmlNewProp(rootNode, XC "nick", XC nick.c_str());
+ xmlNewProp(rootNode, XC("nick"), XC(nick.c_str()));
//Url.
if (url != "")
- xmlNewProp(rootNode, XC "url", XC url.c_str());
+ xmlNewProp(rootNode, XC("url"), XC(url.c_str()));
if (id != "")
- xmlNewProp(rootNode, XC "id", XC id.c_str());
+ xmlNewProp(rootNode, XC("id"), XC(id.c_str()));
//Action.
- xmlNewProp(rootNode, XC "action", XC action.c_str());
+ xmlNewProp(rootNode, XC("action"), XC(action.c_str()));
//Sheep info.
if (sheepGen > 0 && sheepId > 0)
{
//Create a child node of the root node called sheep.
- node = xmlNewChild(rootNode, nullptr, XC "sheep", nullptr);
+ node = xmlNewChild(rootNode, nullptr, XC("sheep"), nullptr);
//Create the sheep attributes.
os << sheepGen;
s = os.str();
- xmlNewProp(node, XC "generation", XC s.c_str());
+ xmlNewProp(node, XC("generation"), XC(s.c_str()));
os.str("");
os << sheepId;
s = os.str();
- xmlNewProp(node, XC "id", XC s.c_str());
+ xmlNewProp(node, XC("id"), XC(s.c_str()));
os.str("");
}
@@ -368,16 +368,16 @@ public:
node = xmlDocGetRootElement(parent0->m_Edits);
nodeCopy = xmlCopyNode(node, 1);
AddFilenameWithoutAmpersand(nodeCopy, parent0->m_ParentFilename);
-
- xmlNewProp(nodeCopy, XC "index", XC s.c_str());
+
+ xmlNewProp(nodeCopy, XC("index"), XC(s.c_str()));
xmlAddChild(rootNode, nodeCopy);
}
else
{
//Insert a (parent has no edit) message.
- nodeCopy = xmlNewChild(rootNode, nullptr, XC "edit", nullptr);
+ nodeCopy = xmlNewChild(rootNode, nullptr, XC("edit"), nullptr);
AddFilenameWithoutAmpersand(nodeCopy, parent0->m_ParentFilename);
- xmlNewProp(nodeCopy, XC "index", XC s.c_str());
+ xmlNewProp(nodeCopy, XC("index"), XC(s.c_str()));
}
os.str("");
@@ -394,15 +394,15 @@ public:
node = xmlDocGetRootElement(parent1->m_Edits);
nodeCopy = xmlCopyNode(node, 1);
AddFilenameWithoutAmpersand(nodeCopy, parent1->m_ParentFilename);
- xmlNewProp(nodeCopy, XC "index", XC s.c_str());
+ xmlNewProp(nodeCopy, XC("index"), XC(s.c_str()));
xmlAddChild(rootNode, nodeCopy);
}
else
{
//Insert a (parent has no edit) message.
- nodeCopy = xmlNewChild(rootNode, nullptr, XC "edit",nullptr);
+ nodeCopy = xmlNewChild(rootNode, nullptr, XC("edit"),nullptr);
AddFilenameWithoutAmpersand(nodeCopy, parent1->m_ParentFilename);
- xmlNewProp(nodeCopy, XC "index", XC s.c_str());
+ xmlNewProp(nodeCopy, XC("index"), XC(s.c_str()));
}
os.str("");
@@ -419,7 +419,7 @@ public:
{
os << "" << comment << "";
s = os.str();
- commentDoc = xmlReadMemory(s.c_str(), (int)s.length(), "comment.env", nullptr, XML_PARSE_NONET);
+ commentDoc = xmlReadMemory(s.c_str(), int(s.length()), "comment.env", nullptr, XML_PARSE_NONET);
os.str("");
//Check for errors.
@@ -617,9 +617,9 @@ private:
for (curAtt = attPtr; curAtt; curAtt = curAtt->next)
{
- attStr = (char*)xmlGetProp(editNode, curAtt->name);
+ attStr = CX(xmlGetProp(editNode, curAtt->name));
os << " " << curAtt->name << "=\"" << attStr << "\"";
- xmlFree((void*)attStr);
+ xmlFree(reinterpret_cast(const_cast(attStr)));
}
//Does this node have children?
@@ -695,7 +695,7 @@ private:
}
else if (editNode->type == XML_TEXT_NODE)
{
- string s((char*)xmlNodeGetContent(editNode));
+ string s(reinterpret_cast(xmlNodeGetContent(editNode)));
os << Trim(s);
}
@@ -709,11 +709,11 @@ private:
string filenameWithoutAmpersands = filename;
FindAndReplace(filenameWithoutAmpersands, "&", "&");
- xmlNewProp(node, XC "filename", XC filenameWithoutAmpersands.c_str());
+ xmlNewProp(node, XC("filename"), XC(filenameWithoutAmpersands.c_str()));
}
else
{
- xmlNewProp(node, XC "filename", XC filename.c_str());
+ xmlNewProp(node, XC("filename"), XC(filename.c_str()));
}
}
};
diff --git a/Source/Ember/Isaac.h b/Source/Ember/Isaac.h
index 680cfbb..10746f6 100644
--- a/Source/Ember/Isaac.h
+++ b/Source/Ember/Isaac.h
@@ -118,7 +118,7 @@ public:
template
inline floatType Frand(floatType fMin, floatType fMax)
{
- floatType f = (floatType)Rand() / (floatType)std::numeric_limits::max();
+ floatType f = static_cast(Rand()) / static_cast(std::numeric_limits::max());
return fMin + (f * (fMax - fMin));
}
@@ -261,7 +261,7 @@ public:
if (s == nullptr)//Default to using time plus index as the seed if s was nullptr.
{
for (int i = 0; i < N; i++)
- m_Rc.randrsl[i] = (T)time(0) + i;
+ m_Rc.randrsl[i] = static_cast(time(nullptr)) + i;
}
else
{
@@ -272,9 +272,9 @@ public:
#ifndef ISAAC_FLAM3_DEBUG
if (a == 0 && b == 0 && c == 0)
{
- m_Rc.randa = (T)time(nullptr);
- m_Rc.randb = (T)time(nullptr) * (T)time(nullptr);
- m_Rc.randc = (T)time(nullptr) * (T)time(nullptr) * (T)time(nullptr);
+ m_Rc.randa = static_cast(time(nullptr));
+ m_Rc.randb = static_cast(time(nullptr)) * static_cast(time(nullptr));
+ m_Rc.randc = static_cast(time(nullptr)) * static_cast(time(nullptr)) * static_cast(time(nullptr));
}
else
#endif
@@ -351,9 +351,9 @@ protected:
inline T Ind(T* mm, T x)
{
#ifndef __ISAAC64
- return (*(T*)((byte*)(mm) + ((x) & ((N - 1) << 2))));
+ return (*reinterpret_cast(reinterpret_cast(mm) + ((x) & ((N - 1) << 2))));
#else // __ISAAC64
- return (*(T*)((byte*)(mm) + ((x) & ((N - 1) << 3))));
+ return (*reinterpret_cast(reinterpret_cast(mm) + ((x) & ((N - 1) << 3))));
#endif // __ISAAC64
}
diff --git a/Source/Ember/Iterator.h b/Source/Ember/Iterator.h
index bd66f3e..72793e1 100644
--- a/Source/Ember/Iterator.h
+++ b/Source/Ember/Iterator.h
@@ -69,7 +69,7 @@ public:
/// Accessors.
///
const byte* XformDistributions() const { return m_XformDistributions.empty() ? nullptr : &m_XformDistributions[0]; }
- const size_t XformDistributionsSize() const { return m_XformDistributions.size(); }
+ size_t XformDistributionsSize() const { return m_XformDistributions.size(); }
///
/// Virtual empty iteration function that will be overidden in derived iterator classes.
@@ -146,7 +146,7 @@ public:
while (tempDensity < currentDensityLimit && j < CHOOSE_XFORM_GRAIN)
{
//printf("offset = %d, xform = %d, running sum = %f\n", j, i, tempDensity);
- m_XformDistributions[(distrib * CHOOSE_XFORM_GRAIN) + j] = (byte)i;
+ m_XformDistributions[(distrib * CHOOSE_XFORM_GRAIN) + j] = byte(i);
tempDensity += densityPerElement;
j++;
}
@@ -259,7 +259,7 @@ protected:
///
size_t NextXformFromIndex(size_t index, size_t distribOffset = 0)
{
- return (size_t)m_XformDistributions[(index % CHOOSE_XFORM_GRAIN) + (CHOOSE_XFORM_GRAIN * distribOffset)];
+ return size_t(m_XformDistributions[(index % CHOOSE_XFORM_GRAIN) + (CHOOSE_XFORM_GRAIN * distribOffset)]);
}
vector m_XformDistributions;
diff --git a/Source/Ember/Palette.h b/Source/Ember/Palette.h
index 3917c0b..3a87213 100644
--- a/Source/Ember/Palette.h
+++ b/Source/Ember/Palette.h
@@ -88,10 +88,10 @@ public:
for (uint i = 0; i < size; i++)
{
- m_Entries[i].a = (T)palette15[i * 4 + 0];
- m_Entries[i].r = (T)palette15[i * 4 + 1];
- m_Entries[i].g = (T)palette15[i * 4 + 2];
- m_Entries[i].b = (T)palette15[i * 4 + 3];
+ m_Entries[i].a = T(palette15[i * 4 + 0]);
+ m_Entries[i].r = T(palette15[i * 4 + 1]);
+ m_Entries[i].g = T(palette15[i * 4 + 2]);
+ m_Entries[i].b = T(palette15[i * 4 + 3]);
}
}
}
@@ -307,7 +307,7 @@ public:
rgb[1] = 0;
rgb[2] = 0;
- for (int j = i - (int)blur; j <= i + (int)blur; j++)
+ for (int j = i - int(blur); j <= i + int(blur); j++)
{
n++;
int k = (256 + j) % 256;
@@ -369,9 +369,9 @@ public:
{
for (uint j = 0; j < width; j++)
{
- v[(width * 3 * i) + (j * 3)] = (byte)(m_Entries[j][0] * T(255));//Palettes are as [0..1], so convert to [0..255] here since it's for GUI display.
- v[(width * 3 * i) + (j * 3) + 1] = (byte)(m_Entries[j][1] * T(255));
- v[(width * 3 * i) + (j * 3) + 2] = (byte)(m_Entries[j][2] * T(255));
+ v[(width * 3 * i) + (j * 3)] = byte(m_Entries[j][0] * T(255));//Palettes are as [0..1], so convert to [0..255] here since it's for GUI display.
+ v[(width * 3 * i) + (j * 3) + 1] = byte(m_Entries[j][1] * T(255));
+ v[(width * 3 * i) + (j * 3) + 2] = byte(m_Entries[j][2] * T(255));
}
}
}
@@ -545,11 +545,11 @@ public:
//Calculate the max-value color (ranged 0 - 1).
for (rgbi = 0; rgbi < 3; rgbi++)
- newRgb[rgbi] = (bucketT)newls * cBuf[rgbi] / bucketT(255.0);
+ newRgb[rgbi] = bucketT(newls) * cBuf[rgbi] / bucketT(255.0);
//Reduce saturation by the lsratio.
Palette::RgbToHsv(newRgb, newhsv);
- newhsv[1] *= (bucketT)lsratio;
+ newhsv[1] *= bucketT(lsratio);
Palette::HsvToRgb(newhsv, newRgb);
for (rgbi = 0; rgbi < 3; rgbi++)
diff --git a/Source/Ember/PaletteList.h b/Source/Ember/PaletteList.h
index b882845..13461bb 100644
--- a/Source/Ember/PaletteList.h
+++ b/Source/Ember/PaletteList.h
@@ -45,7 +45,7 @@ public:
if (ReadFile(filename.c_str(), buf))
{
- xmlDocPtr doc = xmlReadMemory((const char*)buf.data(), (int)buf.size(), filename.c_str(), nullptr, XML_PARSE_NONET);
+ xmlDocPtr doc = xmlReadMemory(static_cast(buf.data()), int(buf.size()), filename.c_str(), nullptr, XML_PARSE_NONET);
if (doc != nullptr)
{
@@ -81,7 +81,7 @@ public:
{
if (i == -1)
return &m_Palettes[QTIsaac::GlobalRand->Rand() % Size()];
- else if (i < (int)m_Palettes.size())
+ else if (i < int(m_Palettes.size()))
return &m_Palettes[i];
}
@@ -161,7 +161,7 @@ private:
while (attr)
{
- val = (char*)xmlGetProp(node, attr->name);
+ val = reinterpret_cast(xmlGetProp(node, attr->name));
if (!Compare(attr->name, "data"))
{
@@ -172,7 +172,7 @@ private:
do
{
- int ret = sscanf_s((char*)&(val[colorIndex]),"00%2x%2x%2x", &r, &g, &b);
+ int ret = sscanf_s(static_cast(&(val[colorIndex])),"00%2x%2x%2x", &r, &g, &b);
if (ret != 3)
{
@@ -183,7 +183,7 @@ private:
colorIndex += 8;
- while (isspace((int)val[colorIndex]))
+ while (isspace(int(val[colorIndex])))
colorIndex++;
palette[colorCount].r = T(r) / T(255);//Store as normalized colors in the range of 0-1.
diff --git a/Source/Ember/Renderer.cpp b/Source/Ember/Renderer.cpp
index 47c40c6..75a4555 100644
--- a/Source/Ember/Renderer.cpp
+++ b/Source/Ember/Renderer.cpp
@@ -124,11 +124,11 @@ void Renderer::ComputeBounds()
//If the radius of the density estimation filter is greater than the
//gutter width, have to pad with more. Otherwise, use the same value.
for (size_t i = 0; i < m_Embers.size(); i++)
- maxDEFilterWidth = max((size_t)(ceil(m_Embers[i].m_MaxRadDE) * m_Ember.m_Supersample), maxDEFilterWidth);
+ maxDEFilterWidth = max(size_t(ceil(m_Embers[i].m_MaxRadDE) * m_Ember.m_Supersample), maxDEFilterWidth);
//Need an extra ss = (int)floor(m_Supersample / 2.0) of pixels so that a local iteration count for DE can be determined.//SMOULDER
if (maxDEFilterWidth > 0)
- maxDEFilterWidth += (size_t)Floor(m_Ember.m_Supersample / T(2));
+ maxDEFilterWidth += size_t(Floor(m_Ember.m_Supersample / T(2)));
//To have a fully present set of pixels for the spatial filter, must
//add the DE filter width to the spatial filter width.//SMOULDER
@@ -546,7 +546,7 @@ FilterAndAccum:
//to be very dark. Correct it by pretending the number of iters done is the exact quality desired and then scale according to that.
if (forceOutput)
{
- T quality = ((T)m_Stats.m_Iters / (T)FinalDimensions()) * (m_Scale * m_Scale);
+ T quality = (T(m_Stats.m_Iters) / T(FinalDimensions())) * (m_Scale * m_Scale);
m_K2 = (Supersample() * Supersample()) / (area * quality * m_TemporalFilter->SumFilt());
}
else
@@ -654,7 +654,7 @@ EmberImageComments Renderer::ImageComments(EmberStats& stats, size_t
ss.imbue(std::locale(""));
comments.m_Genome = m_EmberToXml.ToString(m_Ember, "", printEditDepth, false, intPalette, hexPalette);
- ss << ((double)stats.m_Badvals / (double)stats.m_Iters);//Percentage of bad values to iters.
+ ss << (double(stats.m_Badvals) / double(stats.m_Iters));//Percentage of bad values to iters.
comments.m_Badvals = ss.str(); ss.str("");
ss << stats.m_Iters;
comments.m_NumIters = ss.str(); ss.str("");//Total iters.
@@ -804,7 +804,7 @@ eRenderStatus Renderer::LogScaleDensityFilter()
//Original did a temporary assignment, then *= logScale, then passed the result to bump_no_overflow().
//Combine here into one operation for a slight speedup.
- m_AccumulatorBuckets[index] = m_HistBuckets[index] * (bucketT)logScale;
+ m_AccumulatorBuckets[index] = m_HistBuckets[index] * bucketT(logScale);
}
}
});
@@ -833,14 +833,14 @@ eRenderStatus Renderer::GaussianDensityFilter()
size_t endRow = m_SuperRasH - (Supersample() - 1);//Original did + which is most likely wrong.
intmax_t startCol = Supersample() - 1;
intmax_t endCol = m_SuperRasW - (Supersample() - 1);
- size_t chunkSize = (size_t)ceil(double(endRow - startRow) / double(threads));
+ size_t chunkSize = size_t(ceil(double(endRow - startRow) / double(threads)));
//parallel_for scales very well, dividing the work almost perfectly among all processors.
parallel_for(size_t(0), threads, [&] (size_t threadIndex)
{
size_t pixelNumber = 0;
- int localStartRow = (int)min(startRow + (threadIndex * chunkSize), endRow - 1);
- int localEndRow = (int)min(localStartRow + chunkSize, endRow);
+ int localStartRow = int(min(startRow + (threadIndex * chunkSize), endRow - 1));
+ int localEndRow = int(min(localStartRow + chunkSize, endRow));
size_t pixelsThisThread = size_t(localEndRow - localStartRow) * m_SuperRasW;
double lastPercent = 0;
glm::detail::tvec4 logScaleBucket;
@@ -876,9 +876,9 @@ eRenderStatus Renderer::GaussianDensityFilter()
//when calculating the density for a box centered on the last row or column.
//Clamp here to not run over the edge.
intmax_t densityBoxLeftX = (i - min(i, ss));
- intmax_t densityBoxRightX = (i + min(ss, (intmax_t)m_SuperRasW - i - 1));
+ intmax_t densityBoxRightX = (i + min(ss, intmax_t(m_SuperRasW) - i - 1));
intmax_t densityBoxTopY = (j - min(j, ss));
- intmax_t densityBoxBottomY = (j + min(ss, (intmax_t)m_SuperRasH - j - 1));
+ intmax_t densityBoxBottomY = (j + min(ss, intmax_t(m_SuperRasH) - j - 1));
//Count density in ssxss area.
//Original went one col at a time, which is cache inefficient. Go one row at at time here for a slight speedup.
@@ -894,9 +894,9 @@ eRenderStatus Renderer::GaussianDensityFilter()
if (filterSelect > m_DensityFilter->MaxFilteredCounts())
filterSelectInt = m_DensityFilter->MaxFilterIndex();
else if (filterSelect <= DE_THRESH)
- filterSelectInt = (size_t)ceil(filterSelect) - 1;
+ filterSelectInt = size_t(ceil(filterSelect)) - 1;
else
- filterSelectInt = DE_THRESH + (size_t)Floor(pow(filterSelect - DE_THRESH, m_DensityFilter->Curve()));
+ filterSelectInt = DE_THRESH + size_t(Floor(pow(filterSelect - DE_THRESH, m_DensityFilter->Curve())));
//If the filter selected below the min specified clamp it to the min.
if (filterSelectInt > m_DensityFilter->MaxFilterIndex())
@@ -904,7 +904,7 @@ eRenderStatus Renderer::GaussianDensityFilter()
//Only have to calculate the values for ~1/8 of the square.
filterCoefIndex = filterSelectInt * m_DensityFilter->KernelSize();
- arrFilterWidth = (intmax_t)ceil(filterWidths[filterSelectInt]) - 1;
+ arrFilterWidth = intmax_t(ceil(filterWidths[filterSelectInt])) - 1;
for (jj = 0; jj <= arrFilterWidth; jj++)
{
@@ -1074,46 +1074,46 @@ eRenderStatus Renderer::AccumulatorToFinalImage(byte* pixels, size_t
if (BytesPerChannel() == 2)
{
- p16 = (uint16*)(pixels + pixelsRowStart);
+ p16 = reinterpret_cast(pixels + pixelsRowStart);
if (EarlyClip())
{
- p16[0] = (uint16)(Clamp(newBucket.r, 0, 255) * bucketT(256));
- p16[1] = (uint16)(Clamp(newBucket.g, 0, 255) * bucketT(256));
- p16[2] = (uint16)(Clamp(newBucket.b, 0, 255) * bucketT(256));
+ p16[0] = uint16(Clamp(newBucket.r, 0, 255) * bucketT(256));
+ p16[1] = uint16(Clamp(newBucket.g, 0, 255) * bucketT(256));
+ p16[2] = uint16(Clamp(newBucket.b, 0, 255) * bucketT(256));
if (NumChannels() > 3)
{
if (Transparency())
- p16[3] = (byte)(Clamp(newBucket.a, 0, 1) * bucketT(65535.0));
+ p16[3] = byte(Clamp(newBucket.a, 0, 1) * bucketT(65535.0));
else
p16[3] = 65535;
}
}
else
{
- GammaCorrection(*(glm::detail::tvec4*)(&newBucket), background, g, linRange, vibrancy, NumChannels() > 3, true, p16);
+ GammaCorrection(*(reinterpret_cast*>(&newBucket)), background, g, linRange, vibrancy, NumChannels() > 3, true, p16);
}
}
else
{
if (EarlyClip())
{
- pixels[pixelsRowStart] = (byte)Clamp(newBucket.r, 0, 255);
- pixels[pixelsRowStart + 1] = (byte)Clamp(newBucket.g, 0, 255);
- pixels[pixelsRowStart + 2] = (byte)Clamp(newBucket.b, 0, 255);
+ pixels[pixelsRowStart] = byte(Clamp(newBucket.r, 0, 255));
+ pixels[pixelsRowStart + 1] = byte(Clamp(newBucket.g, 0, 255));
+ pixels[pixelsRowStart + 2] = byte(Clamp(newBucket.b, 0, 255));
if (NumChannels() > 3)
{
if (Transparency())
- pixels[pixelsRowStart + 3] = (byte)(Clamp(newBucket.a, 0, 1) * bucketT(255.0));
+ pixels[pixelsRowStart + 3] = byte(Clamp(newBucket.a, 0, 1) * bucketT(255.0));
else
pixels[pixelsRowStart + 3] = 255;
}
}
else
{
- GammaCorrection(*(glm::detail::tvec4*)(&newBucket), background, g, linRange, vibrancy, NumChannels() > 3, true, pixels + pixelsRowStart);
+ GammaCorrection(*(reinterpret_cast*>(&newBucket)), background, g, linRange, vibrancy, NumChannels() > 3, true, pixels + pixelsRowStart);
}
}
}
@@ -1133,9 +1133,9 @@ eRenderStatus Renderer::AccumulatorToFinalImage(byte* pixels, size_t
{
byte* p = pixels + (NumChannels() * (i + j * FinalRasW()));
- p[0] = (byte)(m_TempEmber.m_Palette[i * 256 / FinalRasW()][0] * WHITE);//The palette is [0..1], output image is [0..255].
- p[1] = (byte)(m_TempEmber.m_Palette[i * 256 / FinalRasW()][1] * WHITE);
- p[2] = (byte)(m_TempEmber.m_Palette[i * 256 / FinalRasW()][2] * WHITE);
+ p[0] = byte(m_TempEmber.m_Palette[i * 256 / FinalRasW()][0] * WHITE);//The palette is [0..1], output image is [0..255].
+ p[1] = byte(m_TempEmber.m_Palette[i * 256 / FinalRasW()][1] * WHITE);
+ p[2] = byte(m_TempEmber.m_Palette[i * 256 / FinalRasW()][2] * WHITE);
}
}
}
@@ -1164,7 +1164,7 @@ EmberStats Renderer::Iterate(size_t iterCount, size_t temporalSample
{
//Timing t2(4);
m_IterTimer.Tic();
- size_t totalItersPerThread = (size_t)ceil((double)iterCount / (double)m_ThreadsToUse);
+ size_t totalItersPerThread = size_t(ceil(double(iterCount) / double(m_ThreadsToUse)));
double percent, etaMs;
EmberStats stats;
@@ -1232,7 +1232,7 @@ EmberStats Renderer::Iterate(size_t iterCount, size_t temporalSample
//This assumes the threads progress at roughly the same speed.
double(m_LastIter + (m_SubBatch[threadIndex] * m_ThreadsToUse)) / double(ItersPerTemporalSample())
) + temporalSample
- ) / (double)TemporalSamples()
+ ) / double(TemporalSamples())
);
double percentDiff = percent - m_LastIterPercent;
@@ -1305,11 +1305,11 @@ template TemporalFilter* Renderer
-template double Renderer::ScaledQuality() const { return (double)m_ScaledQuality; }
-template double Renderer::LowerLeftX(bool gutter) const { return (double)(gutter ? m_CarToRas.CarLlX() : m_LowerLeftX); }
-template double Renderer::LowerLeftY(bool gutter) const { return (double)(gutter ? m_CarToRas.CarLlY() : m_LowerLeftY); }
-template double Renderer::UpperRightX(bool gutter) const { return (double)(gutter ? m_CarToRas.CarUrX() : m_UpperRightX); }
-template double Renderer::UpperRightY(bool gutter) const { return (double)(gutter ? m_CarToRas.CarUrY() : m_UpperRightY); }
+template double Renderer::ScaledQuality() const { return double(m_ScaledQuality); }
+template double Renderer::LowerLeftX(bool gutter) const { return double(gutter ? m_CarToRas.CarLlX() : m_LowerLeftX); }
+template double Renderer::LowerLeftY(bool gutter) const { return double(gutter ? m_CarToRas.CarLlY() : m_LowerLeftY); }
+template double Renderer::UpperRightX(bool gutter) const { return double(gutter ? m_CarToRas.CarUrX() : m_UpperRightX); }
+template double Renderer::UpperRightY(bool gutter) const { return double(gutter ? m_CarToRas.CarUrY() : m_UpperRightY); }
template DensityFilterBase* Renderer::GetDensityFilter() { return m_DensityFilter.get(); }
///
@@ -1357,9 +1357,9 @@ template size_t Renderer::FuseCount()
/// Non-virtual iterator wrappers.
///
-template const byte* Renderer::XformDistributions() const { return m_Iterator != nullptr ? m_Iterator->XformDistributions() : nullptr; }
-template const size_t Renderer::XformDistributionsSize() const { return m_Iterator != nullptr ? m_Iterator->XformDistributionsSize() : 0; }
-template Point* Renderer::Samples(size_t threadIndex) const { return threadIndex < m_Samples.size() ? (Point*)m_Samples[threadIndex].data() : nullptr; }
+template const byte* Renderer::XformDistributions() const { return m_Iterator != nullptr ? m_Iterator->XformDistributions() : nullptr; }
+template size_t Renderer::XformDistributionsSize() const { return m_Iterator != nullptr ? m_Iterator->XformDistributionsSize() : 0; }
+template Point* Renderer::Samples(size_t threadIndex) const { return threadIndex < m_Samples.size() ? const_cast*>(m_Samples[threadIndex].data()) : nullptr; }
///
/// Non-virtual functions that might be needed by a derived class.
@@ -1465,8 +1465,8 @@ void Renderer::Accumulate(QTIsaac& rand, Poin
//Use overloaded addition and multiplication operators in vec4 to perform the accumulation.
if (PaletteMode() == PALETTE_LINEAR)
{
- colorIndex = (bucketT)p.m_ColorX * COLORMAP_LENGTH;
- intColorIndex = (size_t)colorIndex;
+ colorIndex = bucketT(p.m_ColorX) * COLORMAP_LENGTH;
+ intColorIndex = size_t(colorIndex);
if (intColorIndex < 0)
{
@@ -1480,22 +1480,22 @@ void Renderer::Accumulate(QTIsaac& rand, Poin
}
else
{
- colorIndexFrac = colorIndex - (bucketT)intColorIndex;//Interpolate between intColorIndex and intColorIndex + 1.
+ colorIndexFrac = colorIndex - bucketT(intColorIndex);//Interpolate between intColorIndex and intColorIndex + 1.
}
if (p.m_VizAdjusted == 1)
m_HistBuckets[histIndex] += ((dmap[intColorIndex] * (1 - colorIndexFrac)) + (dmap[intColorIndex + 1] * colorIndexFrac));
else
- m_HistBuckets[histIndex] += (((dmap[intColorIndex] * (1 - colorIndexFrac)) + (dmap[intColorIndex + 1] * colorIndexFrac)) * (bucketT)p.m_VizAdjusted);
+ m_HistBuckets[histIndex] += (((dmap[intColorIndex] * (1 - colorIndexFrac)) + (dmap[intColorIndex + 1] * colorIndexFrac)) * bucketT(p.m_VizAdjusted));
}
else if (PaletteMode() == PALETTE_STEP)
{
- intColorIndex = Clamp((size_t)(p.m_ColorX * COLORMAP_LENGTH), 0, COLORMAP_LENGTH_MINUS_1);
+ intColorIndex = Clamp(size_t(p.m_ColorX * COLORMAP_LENGTH), 0, COLORMAP_LENGTH_MINUS_1);
if (p.m_VizAdjusted == 1)
m_HistBuckets[histIndex] += dmap[intColorIndex];
else
- m_HistBuckets[histIndex] += (dmap[intColorIndex] * (bucketT)p.m_VizAdjusted);
+ m_HistBuckets[histIndex] += (dmap[intColorIndex] * bucketT(p.m_VizAdjusted));
}
}
}
@@ -1514,7 +1514,7 @@ void Renderer::Accumulate(QTIsaac& rand, Poin
template
void Renderer::AddToAccum(const glm::detail::tvec4& bucket, intmax_t i, intmax_t ii, intmax_t j, intmax_t jj)
{
- if (j + jj >= 0 && j + jj < (intmax_t)m_SuperRasH && i + ii >= 0 && i + ii < (intmax_t)m_SuperRasW)
+ if (j + jj >= 0 && j + jj < intmax_t(m_SuperRasH) && i + ii >= 0 && i + ii < intmax_t(m_SuperRasW))
m_AccumulatorBuckets[(i + ii) + ((j + jj) * m_SuperRasW)] += bucket;
}
@@ -1573,17 +1573,17 @@ void Renderer::GammaCorrection(glm::detail::tvec4(a, 0, 255);//Early clip, just assign directly.
+ correctedChannels[rgbi] = accumT(Clamp(a, 0, 255));//Early clip, just assign directly.
else
- correctedChannels[rgbi] = (accumT)(Clamp(a, 0, 255) * scaleVal);//Final accum, multiply by 1 for 8 bpc, or 256 for 16 bpc.
+ correctedChannels[rgbi] = accumT(Clamp(a, 0, 255) * scaleVal);//Final accum, multiply by 1 for 8 bpc, or 256 for 16 bpc.
}
if (doAlpha)
{
if (!scale)
- correctedChannels[3] = (accumT)alpha;//Early clip, just assign alpha directly.
+ correctedChannels[3] = accumT(alpha);//Early clip, just assign alpha directly.
else if (Transparency())
- correctedChannels[3] = (accumT)(alpha * numeric_limits::max());//Final accum, 4 channels, using transparency. Scale alpha from 0-1 to 0-255 for 8 bpc or 0-65535 for 16 bpc.
+ correctedChannels[3] = accumT(alpha * numeric_limits::max());//Final accum, 4 channels, using transparency. Scale alpha from 0-1 to 0-255 for 8 bpc or 0-65535 for 16 bpc.
else
correctedChannels[3] = numeric_limits::max();//Final accum, 4 channels, but not using transparency. 255 for 8 bpc, 65535 for 16 bpc.
}
diff --git a/Source/Ember/Renderer.h b/Source/Ember/Renderer.h
index 345ef40..3756715 100644
--- a/Source/Ember/Renderer.h
+++ b/Source/Ember/Renderer.h
@@ -139,9 +139,9 @@ public:
virtual size_t FuseCount() const override;
//Non-virtual iterator wrappers.
- const byte* XformDistributions() const;
- const size_t XformDistributionsSize() const;
- Point* Samples(size_t threadIndex) const;
+ const byte* XformDistributions() const;
+ size_t XformDistributionsSize() const;
+ Point* Samples(size_t threadIndex) const;
protected:
//Non-virtual functions that might be needed by a derived class.
diff --git a/Source/Ember/RendererBase.cpp b/Source/Ember/RendererBase.cpp
index e15358a..5f7a9c8 100644
--- a/Source/Ember/RendererBase.cpp
+++ b/Source/Ember/RendererBase.cpp
@@ -280,8 +280,8 @@ size_t RendererBase::FinalBufferSize() const { return FinalRowSize() *
size_t RendererBase::PixelSize() const { return NumChannels() * BytesPerChannel(); }
size_t RendererBase::GutterWidth() const { return m_GutterWidth; }
size_t RendererBase::DensityFilterOffset() const { return m_DensityFilterOffset; }
-size_t RendererBase::TotalIterCount(size_t strips) const { return (size_t)((size_t)Round(ScaledQuality()) * FinalRasW() * FinalRasH() * strips); }//Use Round() because there can be some roundoff error when interpolating.
-size_t RendererBase::ItersPerTemporalSample() const { return (size_t)ceil(double(TotalIterCount(1)) / double(TemporalSamples())); }//Temporal samples is used with animation, which doesn't support strips, so pass 1.
+size_t RendererBase::TotalIterCount(size_t strips) const { return size_t(size_t(Round(ScaledQuality())) * FinalRasW() * FinalRasH() * strips); }//Use Round() because there can be some roundoff error when interpolating.
+size_t RendererBase::ItersPerTemporalSample() const { return size_t(ceil(double(TotalIterCount(1)) / double(TemporalSamples()))); }//Temporal samples is used with animation, which doesn't support strips, so pass 1.
eProcessState RendererBase::ProcessState() const { return m_ProcessState; }
eProcessAction RendererBase::ProcessAction() const { return m_ProcessAction; }
EmberStats RendererBase::Stats() const { return m_Stats; }
@@ -449,7 +449,7 @@ void RendererBase::ThreadCount(size_t threads, const char* seedString)
if (seedString)
{
memset(seeds, 0, isaacSize * sizeof(ISAAC_INT));
- memcpy((char*)seeds, seedString, min(strlen(seedString), isaacSize * sizeof(ISAAC_INT)));
+ memcpy(reinterpret_cast(seeds), seedString, min(strlen(seedString), isaacSize * sizeof(ISAAC_INT)));
}
//This is critical for multithreading, otherwise the threads all happen
@@ -460,7 +460,7 @@ void RendererBase::ThreadCount(size_t threads, const char* seedString)
if (seedString)
{
- ISAAC_INT newSize = (ISAAC_INT)(size + 5 + (t.Toc() + t.EndTime()));
+ ISAAC_INT newSize = ISAAC_INT(size + 5 + (t.Toc() + t.EndTime()));
#ifdef ISAAC_FLAM3_DEBUG
QTIsaac isaac(0, 0, 0, seeds);
@@ -470,18 +470,18 @@ void RendererBase::ThreadCount(size_t threads, const char* seedString)
m_Rand.push_back(isaac);
for (i = 0; i < (isaacSize * sizeof(ISAAC_INT)); i++)
- ((byte*)seeds)[i]++;
+ reinterpret_cast(seeds)[i]++;
}
else
{
for (i = 0; i < isaacSize; i++)
{
t.Toc();
- seeds[i] = (ISAAC_INT)((t.EndTime() * i) + (size + 1));
+ seeds[i] = ISAAC_INT((t.EndTime() * i) + (size + 1));
}
t.Toc();
- ISAAC_INT r = (ISAAC_INT)((size * i) + i + t.EndTime());
+ ISAAC_INT r = ISAAC_INT((size * i) + i + t.EndTime());
QTIsaac isaac(r, r * 2, r * 3, seeds);
m_Rand.push_back(isaac);
@@ -611,4 +611,4 @@ bool RendererBase::Aborted() { return m_Abort; }
bool RendererBase::InRender() { return m_InRender; }
bool RendererBase::InFinalAccum() { return m_InFinalAccum; }
-}
\ No newline at end of file
+}
diff --git a/Source/Ember/SheepTools.h b/Source/Ember/SheepTools.h
index 7ccbf47..8eb4e43 100644
--- a/Source/Ember/SheepTools.h
+++ b/Source/Ember/SheepTools.h
@@ -610,7 +610,7 @@ public:
{
vector useVars;
- Random(ember, useVars, (int)m_Rand.Frand(-2, 2), 0);
+ Random(ember, useVars, static_cast(m_Rand.Frand(-2, 2)), 0);
}
///
@@ -747,7 +747,7 @@ public:
if (var != -2)
{
//Pick a random variation and use a random weight from 0-1.
- Variation* v = m_VariationList.GetVariationCopy((size_t)(m_Rand.Rand() % varCount), m_Rand.Frand(T(0.001), 1));
+ Variation* v = m_VariationList.GetVariationCopy(static_cast(m_Rand.Rand() % varCount), m_Rand.Frand(T(0.001), 1));
if (v && !xform->AddVariation(v))
delete v;//It already existed and therefore was not added.
@@ -782,7 +782,7 @@ public:
if (var != -2)
{
//Pick a random variation and use a random weight from 0-1.
- xform->AddVariation(m_VariationList.GetVariationCopy((size_t)(m_Rand.Rand() % varCount), m_Rand.Frand(T(0.001), 1)));
+ xform->AddVariation(m_VariationList.GetVariationCopy(static_cast(m_Rand.Rand() % varCount), m_Rand.Frand(T(0.001), 1)));
}
else
{
@@ -869,8 +869,8 @@ public:
//Scale the image so that the total number of pixels is ~10,000.
pixTotal = ember.m_FinalRasW * ember.m_FinalRasH;
scalar = sqrt(T(10000) / pixTotal);
- adjustedEmber.m_FinalRasW = (size_t)(ember.m_FinalRasW * scalar);
- adjustedEmber.m_FinalRasH = (size_t)(ember.m_FinalRasH * scalar);
+ adjustedEmber.m_FinalRasW = static_cast(ember.m_FinalRasW * scalar);
+ adjustedEmber.m_FinalRasH = static_cast(ember.m_FinalRasH * scalar);
adjustedEmber.m_PixelsPerUnit *= scalar;
adjustedEmber.m_TemporalSamples = 1;
@@ -889,7 +889,7 @@ public:
m_Hist.resize(res3);
memset(m_Hist.data(), 0, res3);
-
+
p = m_FinalImage.data();
for (i = 0; i < m_Renderer->FinalDimensions(); i++)
@@ -1310,7 +1310,7 @@ public:
if (eps > T(0.3))
eps = T(0.3);
- lowTarget = (size_t)(samples * eps);
+ lowTarget = static_cast(samples * eps);
highTarget = samples - lowTarget;
min[0] = min[1] = 1e10;
diff --git a/Source/Ember/SpatialFilter.h b/Source/Ember/SpatialFilter.h
index 6743221..f9d3bbe 100644
--- a/Source/Ember/SpatialFilter.h
+++ b/Source/Ember/SpatialFilter.h
@@ -110,7 +110,7 @@ public:
T fw = T(2.0) * m_Support * m_Supersample * m_FilterRadius / m_PixelAspectRatio;
T adjust, ii, jj;
- int fwidth = ((int)fw) + 1;
+ int fwidth = int(fw) + 1;
int i, j;
//Make sure the filter kernel has same parity as oversample.
@@ -147,7 +147,7 @@ public:
m_FinalFilterWidth = fwidth;
break;
}
-
+
m_FilterRadius += T(0.01);//Values were too small.
} while (1);
}
diff --git a/Source/Ember/Timing.h b/Source/Ember/Timing.h
index d6de627..9ab96b8 100644
--- a/Source/Ember/Timing.h
+++ b/Source/Ember/Timing.h
@@ -62,13 +62,13 @@ public:
/// Return the begin time as a double.
///
///
- double BeginTime() { return (double)m_BeginTime.time_since_epoch().count(); }
+ double BeginTime() { return static_cast(m_BeginTime.time_since_epoch().count()); }
///
/// Return the end time as a double.
///
///
- double EndTime() { return (double)m_EndTime.time_since_epoch().count(); }
+ double EndTime() { return static_cast(m_EndTime.time_since_epoch().count()); }
///
/// Return the elapsed time in milliseconds.
@@ -103,13 +103,13 @@ public:
double days = x;
if (days >= 1)
- ss << (int)days << "d ";
+ ss << static_cast(days) << "d ";
if (hours >= 1)
- ss << (int)hours << "h ";
+ ss << static_cast(hours) << "h ";
if (mins >= 1)
- ss << (int)mins << "m ";
+ ss << static_cast(mins) << "m ";
ss << std::fixed << std::setprecision(m_Precision) << secs << "s";
return ss.str();
diff --git a/Source/Ember/Utils.h b/Source/Ember/Utils.h
index b52c1ef..aad52ab 100644
--- a/Source/Ember/Utils.h
+++ b/Source/Ember/Utils.h
@@ -188,11 +188,11 @@ static bool ReadFile(const char* filename, string& buf, bool nullTerminate = tru
{
buf.resize(statBuf.st_size + (nullTerminate ? 1 : 0));//Allocate vector to be the size of the entire file, with an optional additional character for nullptr.
- if (buf.size() == (size_t)(statBuf.st_size + 1))//Ensure allocation succeeded.
+ if (buf.size() == static_cast(statBuf.st_size + 1))//Ensure allocation succeeded.
{
size_t bytesRead = fread(&buf[0], 1, statBuf.st_size, f);//Read the entire file at once.
- if (bytesRead == (size_t)statBuf.st_size)//Ensure the number of bytes read matched what was requested.
+ if (bytesRead == (static_cast(statBuf.st_size)))//Ensure the number of bytes read matched what was requested.
{
if (nullTerminate)//Optionally nullptr terminate if they want to treat it as a string.
buf[buf.size() - 1] = 0;
@@ -229,7 +229,7 @@ static void CopyVec(vector& dest, const vector& source)
dest.resize(source.size());
for (size_t i = 0; i < source.size(); i++)
- dest[i] = (T)source[i];//Valid assignment operator between T and U types must be defined somewhere.
+ dest[i] = static_cast(source[i]);//Valid assignment operator between T and U types must be defined somewhere.
}
///
@@ -248,7 +248,7 @@ static void CopyVec(vector& dest, const vector& source, std::function(source[i]);//Valid assignment operator between T and U types must be defined somewhere.
perElementOperation(dest[i]);
}
}
@@ -287,7 +287,7 @@ static void ClearVec(vector& vec, bool arrayDelete = false)
template
static inline void Memset(vector& vec, int val = 0)
{
- memset((void*)vec.data(), val, SizeOf(vec));
+ memset(static_cast(vec.data()), val, SizeOf(vec));
}
///
@@ -301,11 +301,11 @@ static inline int Floor(T val)
{
if (val >= 0)
{
- return (int)val;
+ return static_cast(val);
}
else
{
- int i = (int)val;//Truncate.
+ int i = static_cast(val);//Truncate.
return i - (i > val);//Convert trunc to floor.
}
}
@@ -430,7 +430,7 @@ static inline void ClampGte0Ref(T& val)
template
static inline T Round(T r)
{
- return (r > 0) ? (T)Floor(r + T(0.5)) : ceil(r - T(0.5));
+ return (r > 0) ? static_cast(Floor(r + T(0.5))) : ceil(r - T(0.5));
}
///
@@ -440,8 +440,8 @@ static inline T Round(T r)
/// The rounded value
static inline float LRint(float x)
{
- int temp = (x >= 0 ? (int)(x + 0.5f) : (int)(x - 0.5f));
- return (float)temp;
+ int temp = (x >= 0 ? static_cast(x + 0.5f) : static_cast(x - 0.5f));
+ return static_cast(temp);
}
///
@@ -451,8 +451,8 @@ static inline float LRint(float x)
/// The rounded value
static inline double LRint(double x)
{
- glm::int64_t temp = (x >= 0 ? (int64_t)(x + 0.5) : (int64_t)(x - 0.5));
- return (double)temp;
+ glm::int64_t temp = (x >= 0 ? static_cast(x + 0.5) : static_cast