Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

86 строки
1.7 KiB

  1. //
  2. // Lol Engine
  3. //
  4. // Copyright: (c) 2010-2012 Sam Hocevar <sam@hocevar.net>
  5. // This program is free software; you can redistribute it and/or
  6. // modify it under the terms of the Do What The Fuck You Want To
  7. // Public License, Version 2, as published by Sam Hocevar. See
  8. // http://sam.zoy.org/projects/COPYING.WTFPL for more details.
  9. //
  10. #if defined HAVE_CONFIG_H
  11. # include "config.h"
  12. #endif
  13. #include "core.h"
  14. #include "lolgl.h"
  15. #if defined __CELLOS_LV2__
  16. # include "platform/ps3/ps3app.h"
  17. #elif defined _XBOX
  18. # include "platform/xbox/xboxapp.h"
  19. #elif defined __native_client__
  20. # include "platform/nacl/naclapp.h"
  21. #elif defined HAVE_GLES_2X
  22. # include "eglapp.h"
  23. #else
  24. # include "platform/sdl/sdlapp.h"
  25. # include "platform/sdl/sdlinput.h"
  26. #endif
  27. using namespace std;
  28. namespace lol
  29. {
  30. class ApplicationData
  31. {
  32. friend class Application;
  33. ApplicationData(char const *name, ivec2 resolution, float framerate)
  34. : app(name, resolution, framerate)
  35. { }
  36. #if defined __CELLOS_LV2__
  37. Ps3App app;
  38. #elif defined _XBOX
  39. XboxApp app;
  40. #elif defined __native_client__
  41. NaClApp app;
  42. #elif defined HAVE_GLES_2X
  43. /* FIXME: this macro is only deactivated if we include "lolgl.h" */
  44. EglApp app;
  45. #elif defined HAVE_SDL_H
  46. SdlApp app;
  47. #else
  48. # error No application class available on this platform
  49. #endif
  50. };
  51. /*
  52. * Public Application class
  53. */
  54. Application::Application(char const *name, ivec2 resolution, float framerate)
  55. {
  56. data = new ApplicationData(name, resolution, framerate);
  57. }
  58. void Application::ShowPointer(bool show)
  59. {
  60. data->app.ShowPointer(show);
  61. }
  62. void Application::Run()
  63. {
  64. data->app.Run();
  65. }
  66. Application::~Application()
  67. {
  68. delete data;
  69. }
  70. } /* namespace lol */