#include "FractoriumPch.h" #include "Fractorium.h" #include /// /// Main program entry point for Fractorium.exe. /// /// The number of command line arguments passed /// The command line arguments passed /// 0 if successful, else 1. int main(int argc, char* argv[]) { QApplication a(argc, argv); #ifdef TEST_CL QMessageBox::critical(QApplication::desktop(), "Error", "Fractorium cannot be run in test mode, undefine TEST_CL first."); return 1; #endif #ifdef ISAAC_FLAM3_DEBUG QMessageBox::critical(QApplication::desktop(), "Error", "Fractorium cannot be run in test mode, undefine ISAAC_FLAM3_DEBUG first."); return 1; #endif //Required for large allocs, else GPU memory usage will be severely limited to small sizes. //This must be done in the application and not in the EmberCL DLL. #ifdef _WIN32 _putenv_s("GPU_MAX_ALLOC_PERCENT", "100"); #else putenv(const_cast("GPU_MAX_ALLOC_PERCENT=100")); #endif int rv = -1; try { Fractorium w; w.show(); a.installEventFilter(&w); rv = a.exec(); } catch (const std::exception& e) { QMessageBox::critical(0, "Fatal Error", QString::fromStdString(e.what())); } catch (const char* e) { QMessageBox::critical(0, "Fatal Error", e); } return rv; }