X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMain.cc;h=a674bbcb0dd9675a560cd2e6564f8c17da1aa7b4;hp=ff2ce61d081fc47ffa5a8c42c35322ea99db614d;hb=6c9943707d4f33035830eba0587a61a34eaecbc2;hpb=e9a16d767785b1a903a4466ff26265a5f7dae9e5 diff --git a/src/Main.cc b/src/Main.cc index ff2ce61..a674bbc 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -17,15 +17,16 @@ #include #include -#if !defined(__WIN32) -#include -#else +#if PLATFORM_WIN32 inline int isatty(int dummy) { return 0; } +#else +#include #endif #include #include +#include #include #include #include @@ -34,21 +35,18 @@ inline int isatty(int dummy) { return 0; } #include #include -#include "GameLayer.hh" #include "Main.hh" -#include "TitleLayer.hh" -#include "version.h" -Main::Main(moof::settings& settings, moof::video& video) : - moof::view(settings, video) +Main::Main(moof::settings& settings) : + moof::application(settings) { moof::dispatcher& dispatcher = moof::dispatcher::global(); video_reloaded_ = dispatcher.add_target("video.newcontext", boost::bind(&Main::setup_opengl)); setup_opengl(); -#if USE_HOTLOADING +#if ENABLE_HOTLOADING hotload_timer_.init(boost::bind(&moof::resource::reload_as_needed), SCALAR(0.25), moof::timer::repeat); @@ -58,15 +56,7 @@ Main::Main(moof::settings& settings, moof::video& video) : void Main::update(moof::scalar t, moof::scalar dt) { - if (children().size() == 0) - { - //moof::log_warning("main view has no children"); - //stop(); - //return; - add_child(TitleLayer::alloc()); - } - - moof::view::update(t, dt); + yoink.update(t, dt); } void Main::draw(moof::scalar alpha) const @@ -79,37 +69,41 @@ void Main::draw(moof::scalar alpha) const glMatrixMode(GL_MODELVIEW); glLoadIdentity(); - moof::view::draw(alpha); + yoink.draw(alpha); } -bool Main::handle_event(const moof::event& event) +void Main::handle_event(const moof::event& event) { - if (moof::view::handle_event(event)) return true; + if (yoink.handle_event(event)) return; switch (event.type) { case SDL_KEYUP: + if (event.key.keysym.sym == SDLK_f) { - video().toggle_fullscreen(); + moof::video::current()->toggle_fullscreen(); } else if (event.key.keysym.sym == SDLK_l) { - video().toggle_cursor_captured(); - video().toggle_cursor_visible(); + moof::video::current()->toggle_cursor_captured(); + moof::video::current()->toggle_cursor_visible(); + } + else if (event.key.keysym.sym == SDLK_ESCAPE) + { + stop(); } break; case SDL_VIDEORESIZE: + glViewport(0, 0, event.resize.w, event.resize.h); break; case SDL_QUIT: + stop(); - return true; } - - return false; } @@ -127,6 +121,8 @@ std::string Main::search_paths() path += ":"; } path += YOINK_DATADIR; + path += ":"; + path += "data"; return path; } @@ -141,7 +137,7 @@ std::string Main::config_paths() std::string path = moof::resource::find_file("yoinkrc"); -#if !defined(_WIN32) +#if PLATFORM_POSIX path += ":/etc/yoinkrc"; #endif path += ":$HOME/.yoinkrc"; @@ -173,7 +169,7 @@ void Main::setup_opengl() glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0.0); - glClearColor(0.0, 0.0, 0.0, 1.0); + glClearColor(1.0, 0.0, 0.0, 1.0); //glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); @@ -214,89 +210,14 @@ void Main::print_usage() << "See documentation for more options." << std::endl; } - void Main::print_info(int argc, char* argv[]) { - bool color = (isatty(1) == 1); - - stlplus::env_vector environment; - - std::string assets; - assets.assign(YOINK_DATADIR); - if (!stlplus::file_readable(assets)) - { - assets += " "; - if (color) assets += "\033[1;91m"; - assets += "(no access)"; - if (color) assets += "\033[0m"; - } - - std::string datadir = environment["YOINK_DATADIR"]; - if (!datadir.empty()) - { - if (!stlplus::folder_readable(datadir)) - { - datadir += " "; - if (color) datadir += "\033[1;91m"; - datadir += "(no access)"; - if (color) datadir += "\033[0m"; - } - } - - std::string rc_file = environment["YOINKRC"]; - if (!rc_file.empty()) - { - if (!stlplus::file_readable(rc_file)) rc_file += " (no access)"; - } - - std::cout << " Executable: " << argv[0] << std::endl -#ifdef YOINK_GITHEAD - << " Commit: "YOINK_GITHEAD << std::endl -#endif - << " Version: " << PACKAGE_VERSION << std::endl - << " Built: " << COMPILE_TIME << std::endl - << " Compiler: " << COMPILER_STRING << std::endl - << " Assets: " << assets << std::endl - << "Build options: "; - -#if USE_CLOCK_GETTIME - print_option("clock_gettime", true); -#else - print_option("clock_gettime", false); -#endif -#if DEBUG - print_option("debug", true); -#else - print_option("debug", false); -#endif -#if USE_GTK - print_option("gtk", true); -#else - print_option("gtk", false); -#endif -#if USE_HOTLOADING - print_option("hotload", true); +#if INCLUDE_CONFIG_FILE + extern char data_config_mk[]; + std::cout << data_config_mk; #else - print_option("hotload", false); + std::cout << std::endl << "Configuration not included." << std::endl; #endif -#if PROFILING_ENABLED - print_option("profile", true); -#else - print_option("profile", false); -#endif -#if USE_QT4 - print_option("qt4", true); -#else - print_option("qt4", false); -#endif -#if USE_THREADS - print_option("threads", true); -#else - print_option("threads", false); -#endif - std::cout << std::endl; - std::cout << " YOINKRC: " << rc_file << std::endl - << "YOINK_DATADIR: " << datadir << std::endl; } void Main::print_option(const std::string& option, bool enabled) @@ -331,8 +252,6 @@ void goodbye() int main(int argc, char* argv[]) { - //moof::backend backend; - if (argc > 1) { std::string arg(argv[1]); @@ -351,6 +270,8 @@ int main(int argc, char* argv[]) hello(); atexit(goodbye); + moof::backend backend; + moof::resource::set_search_paths(Main::search_paths()); moof::settings settings(argc, argv, Main::config_paths()); @@ -361,21 +282,17 @@ int main(int argc, char* argv[]) try { - //std::string iconPath(PACKAGE".png"); - //iconPath = moof::resource::find_file(iconPath); - //moof::image icon(iconPath); - //icon.set_as_icon(); - moof::image_handle icon(PACKAGE, "png"); + moof::image_handle icon("yoink", "png"); if (icon) icon->set_as_icon(); else moof::log_error("no icon loaded"); icon.unload(); class moof::video::attributes attributes(settings); moof::video video(PACKAGE_STRING, attributes); - Main mainView(settings, video); + video.show_fps(true); - mainView.run(); - return 0; + Main app(settings); + return app.run(); } catch (const std::exception& e) {