accelerated-raytracer/src/main.cpp

22 lines
657 B
C++

#include "Scene.h"
#include "viewerwindow.h"
#include <QApplication>
#include <QtConcurrent/QtConcurrent>
int main(int argc, char **argv) {
QApplication app(argc, argv);
raytry::ViewerWindow window;
window.show();
const auto updateImage = [&](){ QMetaObject::invokeMethod(&window, "updateImageLabel", Qt::QueuedConnection); };
raytry::Scene scene{};
QtConcurrent::run(&raytry::Scene::render, &scene, std::reference_wrapper<raytry::ViewerWindow>(window), updateImage)
.then(updateImage)
.onFailed([]() {
qFatal("Rendering scene failed!");
});
return QApplication::exec();
}