// // Lol Engine // // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> // This program is free software; you can redistribute it and/or // modify it under the terms of the Do What The Fuck You Want To // Public License, Version 2, as published by Sam Hocevar. See // http://sam.zoy.org/projects/COPYING.WTFPL for more details. // #if defined HAVE_CONFIG_H # include "config.h" #endif #include "core.h" #include "lolgl.h" #if defined __CELLOS_LV2__ # include "platform/ps3/ps3app.h" #elif defined __native_client__ # include "platform/nacl/naclapp.h" #elif defined HAVE_GLES_2X # include "eglapp.h" #else # include "platform/sdl/sdlapp.h" # include "platform/sdl/sdlinput.h" #endif using namespace std; namespace lol { class ApplicationData { friend class Application; ApplicationData(char const *name, ivec2 resolution, float framerate) : app(name, resolution, framerate) { } #if defined __CELLOS_LV2__ Ps3App app; #elif defined __native_client__ NaClApp app; #elif defined HAVE_GLES_2X /* FIXME: this macro is only deactivated if we include "lolgl.h" */ EglApp app; #elif defined HAVE_SDL_H SdlApp app; #else # error No application class available on this platform #endif }; /* * Public Application class */ Application::Application(char const *name, ivec2 resolution, float framerate) { data = new ApplicationData(name, resolution, framerate); } void Application::ShowPointer(bool show) { data->app.ShowPointer(show); } void Application::Run() { data->app.Run(); } Application::~Application() { delete data; } } /* namespace lol */