X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMain.cc;h=9ae5156047f6205ea41d5bed190796cd7c795bb7;hp=c6df957010d16fc2cd65dfc6a43fdc1e4ca68752;hb=eceb970628068ae621ef9523a669a2b66a82fd8a;hpb=1a9061caa8fe73b4b34a37fe467e145bba7bd2f5 diff --git a/src/Main.cc b/src/Main.cc index c6df957..9ae5156 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -9,54 +9,54 @@ * **************************************************************************/ -#include // atexit, getenv +#include "config.h" + +#include // atexit +#include #include #include #include -#include // access -#include -#include -#include -#include -#include -#include +#include +#include + +#include +#include +#include +#include +#include +#include -#include "ErrorHandler.hh" #include "GameLayer.hh" #include "Main.hh" #include "TitleLayer.hh" - -#if HAVE_CONFIG_H -#include "config.h" -#endif #include "version.h" -Main::Main(Mf::Settings& settings, Mf::Video& video) : - Mf::View(settings, video) +Main::Main(moof::settings& settings, moof::video& video) : + moof::view(settings, video) { - Mf::Dispatch& dispatch = Mf::Dispatch::global(); - mNewContextDispatch = dispatch.addTarget("video.newcontext", + moof::dispatcher& dispatcher = moof::dispatcher::global(); + mNewContextDispatch = dispatcher.add_target("video.newcontext", boost::bind(&Main::setupGL)); setupGL(); } -void Main::update(Mf::Scalar t, Mf::Scalar dt) +void Main::update(moof::scalar t, moof::scalar dt) { if (children().size() == 0) { - //Mf::logWarning("main view has no children"); + //moof::log_warning("main view has no children"); //stop(); //return; - addChild(TitleLayer::alloc()); + add_child(TitleLayer::alloc()); } - Mf::View::update(t, dt); + moof::view::update(t, dt); } -void Main::draw(Mf::Scalar alpha) const +void Main::draw(moof::scalar alpha) const { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -66,24 +66,24 @@ void Main::draw(Mf::Scalar alpha) const glMatrixMode(GL_MODELVIEW); glLoadIdentity(); - Mf::View::draw(alpha); + moof::view::draw(alpha); } -bool Main::handleEvent(const Mf::Event& event) +bool Main::handle_event(const moof::event& event) { - if (Mf::View::handleEvent(event)) return true; + if (moof::view::handle_event(event)) return true; switch (event.type) { case SDL_KEYUP: if (event.key.keysym.sym == SDLK_f) { - video().toggleFull(); + video().toggle_fullscreen(); } else if (event.key.keysym.sym == SDLK_l) { - video().toggleCursorGrab(); - video().toggleCursorVisible(); + video().toggle_cursor_captured(); + video().toggle_cursor_visible(); } break; @@ -107,11 +107,10 @@ std::string Main::getSearchPath() // 2. YOINK_DATADIR (configure) std::string path; - - char* dataDir = getenv("YOINK_DATADIR"); - if (dataDir) + std::string datadir = stlplus::env_vector()["YOINK_DATADIR"]; + if (!datadir.empty()) { - path += dataDir; + path += datadir; path += ":"; } path += YOINK_DATADIR; @@ -127,19 +126,18 @@ std::string Main::getConfigPath() // 3. $HOME/.yoinkrc // 4. YOINKRC (environment) - std::string path("yoinkrc"); - Mf::Resource::getPath(path); + std::string path = moof::resource::find_file("yoinkrc"); #if !defined(_WIN32) path += ":/etc/yoinkrc"; #endif path += ":$HOME/.yoinkrc"; - char* configFile = getenv("YOINKRC"); - if (configFile) + std::string rc_file = stlplus::env_vector()["YOINKRC"]; + if (!rc_file.empty()) { path += ":"; - path += configFile; + path += rc_file; } return path; @@ -164,8 +162,8 @@ void Main::setupGL() //glMatrixMode(GL_PROJECTION); //glLoadIdentity(); - //Mf::Scalar ratio = Mf::core.getVideo()->getWidth() / - //Mf::core.getVideo()->getHeight(); + //moof::scalar ratio = moof::core.getVideo()->width() / + //moof::core.getVideo()->height(); //gluPerspective(60.0, ratio, 1.0, 250.0); //glMatrixMode(GL_MODELVIEW); @@ -196,68 +194,66 @@ void Main::printUsage() void Main::printInfo(int argc, char* argv[]) { - std::string assets; - std::string datadir; - std::string config; + stlplus::env_vector environment; + std::string assets; assets.assign(YOINK_DATADIR); - int accessible = access(assets.c_str(), R_OK); - if (accessible != 0) assets += " (no access)"; + if (!stlplus::file_readable(assets)) assets += " (no access)"; - char* temp = getenv("YOINK_DATADIR"); - if (temp) + std::string datadir = environment["YOINK_DATADIR"]; + if (!datadir.empty()) { - datadir = temp; - accessible = access(temp, R_OK); - if (accessible != 0) datadir += " (no access)"; + if (!stlplus::folder_readable(datadir)) datadir += " (no access)"; } - temp = getenv("YOINKRC"); - if (temp) + std::string rc_file = environment["YOINKRC"]; + if (!rc_file.empty()) { - config = temp; - accessible = access(temp, R_OK); - if (accessible != 0) config += " (no access)"; + 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: "VERSION << std::endl + << " Version: " << PACKAGE_VERSION << std::endl << " Built: " << COMPILE_TIME << std::endl - << " Compiler: "COMPILER_STRING << std::endl + << " Compiler: " << COMPILER_STRING << std::endl << " Assets: " << assets << std::endl << "Build options: " -#ifndef HAVE_CLOCK_GETTIME +#if !USE_CLOCK_GETTIME << "-" #endif << "clock_gettime " -#ifdef NDEBUG +#if !DEBUG << "-" #endif << "debug " -#ifndef USE_DOUBLE_PRECISION +#if !USE_DOUBLE_PRECISION << "-" #endif << "double-precision " -#ifndef USE_GTK +#if !USE_GTK << "-" #endif << "gtk " -#ifndef PROFILING_ENABLED +#if !USE_HOTLOADING + << "-" +#endif + << "hotloading " +#if !PROFILING_ENABLED << "-" #endif << "profile " -#ifndef USE_QT4 +#if !USE_QT4 << "-" #endif << "qt4 " -#ifndef USE_THREADS +#if !USE_THREADS << "-" #endif << "threads" << std::endl - << " YOINKRC: " << config << std::endl + << " YOINKRC: " << rc_file << std::endl << "YOINK_DATADIR: " << datadir << std::endl; } @@ -276,90 +272,14 @@ void goodbye() } -#include - int main(int argc, char* argv[]) { - Mf::ResolverTask task("4950", "255.255.255.255", SOCK_DGRAM); - task.run(); - - int i = task.wait(); - Mf::logWarning << "task ended with code: " << i << std::endl; - - std::vector::const_iterator it; - for (it = task.addresses().begin(); it != task.addresses().end(); ++it) - { - Mf::SocketAddress addr = *it; - - Mf::logInfo << "address: " << addr.name() << ":" << addr.port() - << " (" << addr.type() << ")" << std::endl; - } - - - Mf::Packet packet(1000000); - - packet << 5.1234f; - Mf::logInfo << "packet size: " << packet.size() << std::endl; - - float meh3; - packet >> meh3; - Mf::logInfo << "float: " << meh3 << std::endl; - Mf::logInfo << "packet size: " << packet.size() << std::endl; - - - packet << uint16_t(45); - Mf::logInfo << "packet size: " << packet.size() << std::endl; - packet << uint64_t(1234567812345679ULL); - Mf::logInfo << "packet size: " << packet.size() << std::endl; - - packet << true << false << false << true << false << true << true; - Mf::logInfo << "packet size: " << packet.size() << std::endl; - - std::vector hi; - hi.push_back(34); - hi.push_back(-12345); - hi.push_back(7734); - - for (int a = 0; a < 15900; a++) - { - hi.push_back(a); - } - - packet << hi; - Mf::logInfo << "packet size: " << packet.size() << std::endl; - - packet << "hello world"; - Mf::logInfo << "packet size: " << packet.size() << std::endl; - - packet << false << false << false << true << false; - Mf::logInfo << "packet size: " << packet.size() << std::endl; - - - Mf::SocketAddress addr("634", "lappy"); - Mf::logInfo << "local addr: " << addr.name() << std::endl; - - for (it = task.addresses().begin(); it != task.addresses().end(); ++it) - { - int bcast = 0; - - Mf::SocketAddress addr = *it; - Mf::Socket sock(addr); - - sock.get(SO_BROADCAST, bcast); - Mf::logInfo << "bcast: " << bcast << std::endl; - - sock.set(SO_REUSEADDR, 1); - sock.set(SO_BROADCAST, 1); - - sock.get(SO_BROADCAST, bcast); - Mf::logInfo << "bcast: " << bcast << std::endl; - - sock.write(packet); - } - - - return 0; + moof::backend backend; + // FIXME: This is temporary. + moof::timer reloadTimer(boost::bind(&moof::resource::reload_as_needed), + SCALAR(2.0), + moof::timer::repeat); if (argc > 1) { @@ -379,31 +299,37 @@ int main(int argc, char* argv[]) hello(); atexit(goodbye); - Mf::Resource::addSearchPaths(Main::getSearchPath()); + moof::resource::add_search_paths(Main::getSearchPath()); - Mf::Settings settings(argc, argv, Main::getConfigPath()); + moof::settings settings(argc, argv, Main::getConfigPath()); - Mf::Log::Level logLevel = Mf::Log::INFO; + enum moof::log::level logLevel = moof::log::info; settings.get("loglevel", logLevel); - Mf::Log::setLevel(logLevel); + moof::log::level(logLevel); try { - Mf::Video::Attributes attributes(settings); - attributes.caption = PACKAGE_STRING; - attributes.icon = Mf::Resource::getPath(PACKAGE".png"); - - Mf::Video video(attributes); + //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"); + 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); mainView.run(); return 0; } - catch (const Mf::Error& error) + catch (const std::exception& e) { - Mf::ModalDialog dialog(Mf::ModalDialog::CRITICAL, - PACKAGE_STRING, "Unhandled Exception", - getErrorString(error)); + moof::modal_dialog dialog(moof::modal_dialog::error, + PACKAGE_STRING, "Unhandled Exception", + e.what()); dialog.run(); return 1;