*
**************************************************************************/
-#include <cstdlib> // atexit, getenv
+#include "config.h"
+
+#include <cstdlib> // atexit
+#include <exception>
#include <functional>
#include <iostream>
#include <string>
-#include <unistd.h> // access
-#include <Moof/Log.hh>
-#include <Moof/ModalDialog.hh>
-#include <Moof/OpenGL.hh>
-#include <Moof/Resource.hh>
-#include <Moof/Settings.hh>
-#include <Moof/Video.hh>
+#include <stlplus/portability/file_system.hpp>
+#include <stlplus/portability/subprocesses.hpp>
+
+#include <moof/log.hh>
+#include <moof/modal_dialog.hh>
+#include <moof/opengl.hh>
+#include <moof/resource.hh>
+#include <moof/settings.hh>
+#include <moof/video.hh>
-#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);
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;
// 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;
// 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;
//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);
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
<< "-"
#endif
<< "gtk "
+#ifndef USE_HOTLOADING
+ << "-"
+#endif
+ << "hotloading "
#ifndef PROFILING_ENABLED
<< "-"
#endif
<< "-"
#endif
<< "threads" << std::endl
- << " YOINKRC: " << config << std::endl
+ << " YOINKRC: " << rc_file << std::endl
<< "YOINK_DATADIR: " << datadir << std::endl;
}
}
-#include <Moof/Socket.hh>
+#include <moof/image.hh>
+#include <moof/backend.hh>
+#include <moof/sprite.hh>
+
int main(int argc, char* argv[])
{
- Mf::ResolverTask task("compy", "4950", SOCK_DGRAM);
- task.run();
-
- int i = task.wait();
- Mf::logWarning << "task ended with code: " << i << std::endl;
-
- std::vector<Mf::SocketAddress>::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::SocketAddress addr("www.apple.com", "80", SOCK_DGRAM);
-
- Mf::logInfo << "address: " << addr.name() << ":" << addr.port()
- << " (" << addr.type() << ")" << std::endl;
-
- Mf::Packet packet(1000000);
- packet << (uint16_t)45;
- Mf::logInfo << "packet size: " << packet.size() << std::endl;
- packet << (int64_t)-1234567890123456789;
- 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<char> 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;
+ //moof::backend backend;
+ //moof::resource::add_search_paths(Main::getSearchPath());
+ //moof::image hey("textures/AlienWarrior.png");
- for (it = task.addresses().begin(); it != task.addresses().end(); ++it)
- {
- Mf::SocketAddress addr = *it;
- Mf::Socket sock(addr);
- sock.write(packet);
- }
+ //return 0;
- return 0;
-
+ // FIXME: This is temporary.
+ moof::timer reloadTimer(boost::bind(&moof::resource::reload_as_needed),
+ SCALAR(2.0),
+ moof::timer::repeat);
if (argc > 1)
{
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();
+
+ 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;