Ejemplo n.º 1
0
int main(int argc, char **argv)
{
    QLocale::setDefault(QLocale::C);

    //Scene registrations
    SceneRegister<SceneImage> regsceneimage("image");

    try
    {
        QApplication app(argc, argv);

        QStringList args = app.arguments();
        if (args.length() != 3)
            throw QString("Usage: %1 <scene.csd> <out.png>").arg(args.at(0));

        Render r;

        QElapsedTimer timer;
        timer.start();

        Scene scene(args.at(1));

        cout << "Parsing time: " <<
            r.showTime(timer.elapsed()).toStdString() << endl;

        Window win;
        win.resize(scene.width(), scene.height());
        win.show();
        win.setFileName(args.at(2));
        QFuture<void> retthread = QtConcurrent::run(render, &r, &win, &scene);

        int ret = app.exec();
        r.lock();
        r.quit();
        r.unlock();
        retthread.waitForFinished();
        return ret;
    }
    catch (const QString &s)
    {
        cerr << s.toStdString() << endl;
        return EXIT_FAILURE;
    }
}