aboutsummaryrefslogtreecommitdiff
path: root/BuddhaTest/src
diff options
context:
space:
mode:
Diffstat (limited to 'BuddhaTest/src')
-rw-r--r--BuddhaTest/src/BuddhaTest.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/BuddhaTest/src/BuddhaTest.cpp b/BuddhaTest/src/BuddhaTest.cpp
index cc6bc83..bbbd915 100644
--- a/BuddhaTest/src/BuddhaTest.cpp
+++ b/BuddhaTest/src/BuddhaTest.cpp
@@ -6,6 +6,7 @@
#include <chrono>
#include <iomanip>
#include <algorithm>
+#include <cmath>
void error_callback(int error, const char* description)
{
@@ -26,6 +27,17 @@ int main(int argc, char * argv[])
return 2;
}
+
+
+ float imageRangeMinX = -2.0f;
+ float imageRangeMinY = -1.125f;
+ float imageRangeMaxX = 2.0f;
+ float imageRangeMaxY = 1.125f;
+
+
+
+
+
GLFWwindow* window;
/* Initialize the library */
@@ -158,9 +170,24 @@ int main(int argc, char * argv[])
GLint widthUniformComputeHandle = glGetUniformLocation(ComputeShader, "width");
GLint heightUniformComputeHandle = glGetUniformLocation(ComputeShader, "height");
GLint iterationsPerDispatchHandle = glGetUniformLocation(ComputeShader, "iterationsPerDispatch");
+ GLint imageRangeComputeHandle = glGetUniformLocation(ComputeShader,"effectiveImageRange");
glUniform4ui(orbitLengthUniformHandle,settings.orbitLengthRed,settings.orbitLengthGreen,settings.orbitLengthBlue,settings.orbitLengthSkip);
glUniform1ui(widthUniformComputeHandle, settings.imageWidth);
glUniform1ui(heightUniformComputeHandle, settings.imageHeight);
+ float effectiveImageRange[4];
+ effectiveImageRange[0] = imageRangeMinX;
+ effectiveImageRange[2] = imageRangeMaxX;
+ if(imageRangeMinY*imageRangeMaxY < 0)
+ {
+ effectiveImageRange[1] = std::max(imageRangeMinY,-imageRangeMaxY);
+ effectiveImageRange[3] = std::max(-imageRangeMinY,imageRangeMaxY);
+ }
+ else
+ {
+ effectiveImageRange[1] = std::min(std::abs(imageRangeMinY),std::abs(imageRangeMaxY));
+ effectiveImageRange[3] = std::max(std::abs(imageRangeMinY),std::abs(imageRangeMaxY));
+ }
+ glUniform4f(imageRangeComputeHandle,effectiveImageRange[0],effectiveImageRange[1],effectiveImageRange[2],effectiveImageRange[3]);
const uint32_t maxOrbitlength = std::max(std::max(settings.orbitLengthBlue,settings.orbitLengthGreen),settings.orbitLengthRed);
glUniform1ui(totalIterationsUniformHandle, maxOrbitlength);