main.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include <FreeImage.h>
  2. #include <GL/glew.h>
  3. #include <GLFW/glfw3.h>
  4. #include <SDL.h>
  5. #include <csignal>
  6. #include <filesystem>
  7. #include <getopt.h>
  8. #include <iostream>
  9. #include <libgen.h>
  10. #include <stdlib.h>
  11. #include <sys/stat.h>
  12. #include <unistd.h>
  13. #include "WallpaperEngine/Core/CProject.h"
  14. #include "WallpaperEngine/Render/CRenderContext.h"
  15. #include "WallpaperEngine/Render/CVideo.h"
  16. #include "WallpaperEngine/Render/CWallpaper.h"
  17. #include "WallpaperEngine/Assets/CPackage.h"
  18. #include "WallpaperEngine/Assets/CDirectory.h"
  19. #include "WallpaperEngine/Assets/CVirtualContainer.h"
  20. #include "WallpaperEngine/Assets/CCombinedContainer.h"
  21. #include "WallpaperEngine/Assets/CPackageLoadException.h"
  22. #include "Steam/FileSystem/FileSystem.h"
  23. #include "WallpaperEngine/Application/CApplicationContext.h"
  24. #include "WallpaperEngine/Application/CWallpaperApplication.h"
  25. #include "WallpaperEngine/Audio/CAudioContext.h"
  26. #include "WallpaperEngine/Audio/Drivers/CSDLAudioDriver.h"
  27. #include "WallpaperEngine/Render/Drivers/COpenGLDriver.h"
  28. #include "common.h"
  29. WallpaperEngine::Application::CWallpaperApplication* appPointer;
  30. void signalhandler(int sig)
  31. {
  32. if (appPointer == nullptr)
  33. return;
  34. appPointer->signal (sig);
  35. }
  36. void initLogging ()
  37. {
  38. sLog.addOutput (new std::ostream (std::cout.rdbuf ()));
  39. sLog.addError (new std::ostream (std::cerr.rdbuf ()));
  40. }
  41. int main (int argc, char* argv[])
  42. {
  43. initLogging ();
  44. WallpaperEngine::Application::CApplicationContext appContext (argc, argv);
  45. WallpaperEngine::Application::CWallpaperApplication app (appContext);
  46. // halt if the list-properties option was specified
  47. if (appContext.onlyListProperties)
  48. return 0;
  49. appPointer = &app;
  50. // attach signals to gracefully stop
  51. std::signal (SIGINT, signalhandler);
  52. std::signal (SIGTERM, signalhandler);
  53. // show the wallpaper application
  54. app.show ();
  55. appPointer = nullptr;
  56. return 0;
  57. }