main.cpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include <iostream>
  2. #include <irrlicht/irrlicht.h>
  3. #include <sstream>
  4. #include <wallpaperengine/config.h>
  5. #include <wallpaperengine/fs/fileResolver.h>
  6. #include "nier_test.h"
  7. #include "wallpaperengine/irrlicht.h"
  8. int WinID = 0;
  9. int game_test_main();
  10. int main(int argc, char* argv[])
  11. {
  12. // parse the integer if it exists
  13. if (argc >= 1)
  14. {
  15. std::stringstream ss;
  16. ss << std::hex << argv[1];
  17. ss >> WinID;
  18. }
  19. printf("Initializing X11 to %d\n", WinID);
  20. return game_test_main ();
  21. }
  22. irr::SIrrlichtCreationParameters _irr_params;
  23. int init_irrlicht()
  24. {
  25. // prepare basic configuration for irrlicht
  26. _irr_params.AntiAlias = 8;
  27. _irr_params.Bits = 16;
  28. // _irr_params.DeviceType = irr::EIDT_X11;
  29. _irr_params.DriverType = irr::video::EDT_OPENGL;
  30. _irr_params.Doublebuffer = true;
  31. _irr_params.EventReceiver = nullptr;
  32. _irr_params.Fullscreen = false;
  33. _irr_params.HandleSRGB = false;
  34. _irr_params.IgnoreInput = true;
  35. _irr_params.Stencilbuffer = true;
  36. _irr_params.UsePerformanceTimer = false;
  37. _irr_params.Vsync = false;
  38. _irr_params.WithAlphaChannel = false;
  39. _irr_params.ZBufferBits = 24;
  40. _irr_params.LoggingLevel = irr::ELL_DEBUG;
  41. _irr_params.WindowId = reinterpret_cast<void*> (WinID);
  42. wp::irrlicht::device = irr::createDeviceEx (_irr_params);
  43. if (wp::irrlicht::device == nullptr)
  44. {
  45. return 1;
  46. }
  47. wp::irrlicht::device->setWindowCaption (L"Test game");
  48. wp::irrlicht::driver = wp::irrlicht::device->getVideoDriver();
  49. return 0;
  50. }
  51. void preconfigure_wallpaper_engine ()
  52. {
  53. wp::config::path::base = wp::irrlicht::device->getFileSystem ()->getAbsolutePath ("../");
  54. wp::config::path::resources = wp::config::path::base + "/res";
  55. wp::config::path::shaders = wp::config::path::resources + "/shaders";
  56. wp::fs::resolver.changeWorkingDirectory(wp::config::path::base);
  57. }
  58. int game_test_main ()
  59. {
  60. if (init_irrlicht())
  61. {
  62. return 1;
  63. }
  64. preconfigure_wallpaper_engine ();
  65. nier_test ();
  66. return 0;
  67. }