diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 4b037c3aa..639ec338b 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -273,9 +273,9 @@ if(APPLE) set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE TRUE) endif() -#if(WIN32) -# set_target_properties(${PROJECT_NAME} PROPERTIES WIN32_EXECUTABLE TRUE) -#endif() +if(WIN32) + set_target_properties(${PROJECT_NAME} PROPERTIES WIN32_EXECUTABLE TRUE) +endif() target_link_directories( ${PROJECT_NAME} diff --git a/src/app/main.cpp b/src/app/main.cpp index 4b82c3b09..e4fc2ebf0 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -28,6 +28,7 @@ #include //#include #include +#include #include @@ -143,6 +144,12 @@ int main(int argc, char *argv[]) } #endif + QSplashScreen splash(QPixmap(":/pixmaps/splash.png")); + splash.show(); + splash.raise(); + splash.showMessage(QObject::tr("Loading ..."), + Qt::AlignLeft | Qt::AlignBottom, Qt::white); + #ifdef Q_OS_WIN QWindowsWindowFunctions::setHasBorderInFullScreenDefault(true); #endif @@ -162,6 +169,10 @@ int main(int argc, char *argv[]) gPrintExceptionCritical(e); } + splash.raise(); + splash.showMessage(QObject::tr("Using OpenGL Renderer: %1").arg(HardwareInfo::sGpuRendererString()), + Qt::AlignLeft | Qt::AlignBottom, Qt::white); + std::cout << "OpenGL Vendor: " << HardwareInfo::sGpuVendorString().toStdString() << std::endl << "OpenGL Renderer: " << HardwareInfo::sGpuRendererString().toStdString() << std::endl << "OpenGL Version: " << HardwareInfo::sGpuVersionString().toStdString() << std::endl @@ -205,7 +216,10 @@ int main(int argc, char *argv[]) generateAlphaMesh(alphaMesh, size/2); }); ALPHA_MESH_PIX = &alphaMesh; - std::cout << "Generated Alpha Mesh" << std::endl; + + splash.raise(); + splash.showMessage(QObject::tr("Generated Alpha Mesh"), + Qt::AlignLeft | Qt::AlignBottom, Qt::white); ThemeSupport::setupTheme(eSizesUI::widget); @@ -244,6 +258,10 @@ int main(int argc, char *argv[]) // process->start("prlimit --data=3000000000 --pid " + QString::number(pId)); //#endif + splash.raise(); + splash.showMessage(QObject::tr("Loading Settings ..."), + Qt::AlignLeft | Qt::AlignBottom, Qt::white); + try { settings.loadFromFile(); std::cout << "Loaded settings" << std::endl; @@ -274,6 +292,10 @@ int main(int argc, char *argv[]) Document document(taskScheduler); Actions actions(document); + splash.raise(); + splash.showMessage(QObject::tr("Initializing GPU ..."), + Qt::AlignLeft | Qt::AlignBottom, Qt::white); + EffectsLoader effectsLoader; try { effectsLoader.initializeGpu(); @@ -303,7 +325,10 @@ int main(int argc, char *argv[]) scene->updateIfUsesProgram(program); document.actionFinished(); }); - std::cout << "Shader effects initialized" << std::endl; + + splash.raise(); + splash.showMessage(QObject::tr("Shader effects initialized"), + Qt::AlignLeft | Qt::AlignBottom, Qt::white); // disabled for now //effectsLoader.iniCustomBoxes(); @@ -319,12 +344,17 @@ int main(int argc, char *argv[]) } catch(const std::exception& e) { gPrintExceptionCritical(e); } - std::cout << "Audio initialized" << std::endl; + splash.raise(); + splash.showMessage(QObject::tr("Audio initialized"), + Qt::AlignLeft | Qt::AlignBottom, Qt::white); const auto videoEncoder = enve::make_shared(); RenderHandler renderHandler(document, audioHandler, *videoEncoder, memoryHandler); - std::cout << "Render handler initialized" << std::endl; + + splash.raise(); + splash.showMessage(QObject::tr("Render handler initialized"), + Qt::AlignLeft | Qt::AlignBottom, Qt::white); av_log_set_level(AV_LOG_ERROR); #ifndef QT_DEBUG @@ -342,6 +372,7 @@ int main(int argc, char *argv[]) renderHandler, openProject); w.show(); + splash.finish(&w); try { return app.exec(); diff --git a/src/app/pixmaps/splash.png b/src/app/pixmaps/splash.png new file mode 100644 index 000000000..22d310923 Binary files /dev/null and b/src/app/pixmaps/splash.png differ diff --git a/src/app/resources.qrc b/src/app/resources.qrc index c5cc628e1..7e0ef94dd 100644 --- a/src/app/resources.qrc +++ b/src/app/resources.qrc @@ -35,5 +35,6 @@ xdg/friction.xml xdg/friction.desktop icons/hicolor/scalable/apps/graphics.friction.Friction.svg + pixmaps/splash.png