mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-01-22 05:30:06 -05:00
07592c9d78
Add Curves.h, and CurvesGraphicsView.h/cpp to support bezier color curves. Add Curves member to Ember. Add curves capability to EmberCL. Remove some unused variables in the kernel created in RendererCL::CreateFinalAccumKernelString(). Use glm namespace for vec classes if GLM_VERSION >= 96, else use glm::detail. As a result of using glm namespace, all instances of min and max had to be qualified with std:: Split ComputeCamera into that and ComputeQuality(). Reduce the amount of ComputeCamera() and MakeDmap() calls on each incremental iter that doesn't use temporal samples. Fix clamping bug with DE filter widths. Provide functions to return the kernels from RendererCL to assist with diagnostics and debugging. Prevent extra newline in EmberRender when only rendering a single image. Add the ability to delete an ember at a given index in EmberFile. Allow deleting/focusing ember in library tab with delete and enter keys. Reorder some code in Fractorium.h to match the tabs order. Add and call ClearFinalImages() to clear buffers in controller to fix bug where previous CPU render would be shown for a split second when switching from OpenCL back to CPU. Refactor ember library pointer syncing to a function SyncPointers(). Add the ability to save ember Xmls to an unique automatically generated name after the first time the user has specified a name.
85 lines
1.7 KiB
C++
85 lines
1.7 KiB
C++
#pragma once
|
|
|
|
/// <summary>
|
|
/// Precompiled header file. Place all system includes here with appropriate #defines for different operating systems and compilers.
|
|
/// </summary>
|
|
|
|
#define NOMINMAX
|
|
#define _USE_MATH_DEFINES
|
|
|
|
#ifdef _WIN32
|
|
#define basename(x) _strdup(x)
|
|
#define snprintf _snprintf
|
|
#define snprintf_s _snprintf_s
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#define EMBER_OS "WIN"
|
|
|
|
#include <SDKDDKVer.h>
|
|
#include <windows.h>
|
|
#elif __APPLE__
|
|
#define EMBER_OS "OSX"
|
|
#else
|
|
#include <libgen.h>
|
|
#include <unistd.h>
|
|
#define EMBER_OS "LNX"
|
|
#endif
|
|
|
|
//Standard headers.
|
|
#include <algorithm>
|
|
#include <chrono>
|
|
#include <complex>
|
|
#include <cstdint>
|
|
#include <fstream>
|
|
#include <functional>
|
|
#include <inttypes.h>
|
|
#include <iostream>
|
|
#include <iomanip>
|
|
#include <limits>
|
|
#ifdef __APPLE__
|
|
#include <malloc/malloc.h>
|
|
#else
|
|
#include <malloc.h>
|
|
#endif
|
|
#include <math.h>
|
|
#include <memory>
|
|
#include <numeric>
|
|
#include <ostream>
|
|
#include <sstream>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <thread>
|
|
#include <time.h>
|
|
#include <vector>
|
|
|
|
//Third party headers.
|
|
#ifdef _WIN32
|
|
#include "libxml/parser.h"
|
|
#else
|
|
#include "libxml2/libxml/parser.h"
|
|
#endif
|
|
|
|
//Intel's Threading Building Blocks is what's used for all threading.
|
|
#include <tbb/task_group.h>
|
|
#include <tbb/parallel_for.h>
|
|
#include <tbb/task_scheduler_init.h>
|
|
|
|
#define GLM_FORCE_RADIANS 1
|
|
#ifndef __APPLE__
|
|
#define GLM_FORCE_INLINE 1
|
|
#endif
|
|
|
|
//glm is what's used for matrix math.
|
|
#include <glm/glm.hpp>
|
|
#include <glm/detail/type_int.hpp>
|
|
#include <glm/gtc/matrix_transform.hpp>
|
|
#include <glm/gtc/type_ptr.hpp>
|
|
#include <glm/gtx/string_cast.hpp>
|
|
|
|
using namespace tbb;
|
|
using namespace std;
|
|
using namespace std::chrono;
|
|
using namespace glm;
|
|
using namespace glm::detail;
|
|
using glm::uint;
|
|
using glm::uint16;
|