*
**************************************************************************/
-#include <cstdlib> // atexit, getenv
+#include "config.h"
+
+#include <cstdlib> // atexit
#include <exception>
#include <functional>
#include <iostream>
#include <string>
-#include <unistd.h> // access
+
+#include <stlplus/portability/file_system.hpp>
+#include <stlplus/portability/subprocesses.hpp>
#include <moof/log.hh>
#include <moof/modal_dialog.hh>
#include "GameLayer.hh"
#include "Main.hh"
#include "TitleLayer.hh"
-
-#include "../config.h"
#include "version.h"
// 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");
- moof::resource::find(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;
glEnable(GL_POLYGON_SMOOTH);
glShadeModel(GL_SMOOTH);
- //glEnable(GL_BLEND);
- //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0.0);
glClearColor(0.0, 0.0, 0.0, 1.0);
+ //glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ float light[] = {1.0f, 1.0f, 1.0f, 1.0f};
+ glLightfv(GL_LIGHT0, GL_AMBIENT_AND_DIFFUSE, light);
+
+
//glMatrixMode(GL_PROJECTION);
//glLoadIdentity();
//moof::scalar ratio = moof::core.getVideo()->width() /
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 USE_HOTLOADING
+#if !USE_HOTLOADING
<< "-"
#endif
<< "hotloading "
-#ifndef PROFILING_ENABLED
+#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;
}
}
-#include <moof/socket.hh>
-
-#include <fstream>
-
-class MyAsset
-{
-public:
- MyAsset(const std::string& path)
- {
- moof::log_info("MyAsset loading:", path);
-
- char buffer[1024];
-
- std::ifstream stream(path.c_str());
- stream.getline(buffer, sizeof(buffer));
- str = buffer;
- stream.close();
-
- cool();
- }
-
- void cool()
- {
- moof::log_info("MyAsset COOL:", str);
- }
-
- void groovy()
- {
- moof::log_info("MyAsset GROOVY!!!!", str);
- }
-
- std::string str;
-};
-
-typedef moof::resource_handle<MyAsset> MyAsset_handle;
-
-class AnotherAsset
-{
-public:
- AnotherAsset(const std::string& path, double d = 5.0)
- {
- moof::log_info("AnotherAsset loading:", path);
- dude = d;
- }
-
-
- void cool()
- {
- moof::log_info("AnotherAsset cool", dude);
- }
-
- void groovy()
- {
- moof::log_info("AnotherAsset GROOVY!!!!", dude);
- }
-
- double dude;
-};
-
-
int main(int argc, char* argv[])
{
- moof::resource::register_type<MyAsset>("mine");
-
- //moof::resource::add_type<AnotherAsset>("k");
-
- //{
- //moof::resource_ptr myAsset = moof::resource::load(assetName,
- //"prefix", "mine");
-
- //MyAsset_handle aCopy = myAsset;
-
- //MyAsset_handle copy2 = moof::resource::load(assetName, "asdfas", "mine");
-
- ////if (myAsset->check<MyAsset>()) myAsset->get<AnotherAsset>()->cool();
- //myAsset->get<MyAsset>()->cool();
- ////myAsset->get<AnotherAsset>()->groovy();
-
- //aCopy.get()->cool();
- //copy2.get()->cool();
-
- //log_info("rsrc ptr:", moof::resource::load(assetName, "", "mine"));
- //}
- //log_info("rsrc ptr:", moof::resource::load(assetName, "", "k"));
- //moof::resource::load(assetName, "", "mine")->get<MyAsset>()->cool();
-
- ////if (myAsset) myAsset.get()->cool();
- ////else moof::log_error("asset not obtained...");
-
- MyAsset_handle myAsset = moof::resource::load("/home/chaz/meh.mine");
- MyAsset* asset = myAsset.get();
- if (asset) asset->cool();
- else moof::log_warning("no asset obtained!!");
-
- moof::timer reloadTimer(
- boost::bind(&moof::resource::reload_as_needed),
- SCALAR(2.0),
- moof::timer::repeat);
-
- //for (;;)
- //{
- //myAsset.get()->cool();
- //moof::resource::reload_as_needed();
- //sleep(1);
- //}
-
- //return 0;
-
- moof::resolver_task task("4950", "lappy");
- task.run();
-
- int i = task.wait();
- moof::log_warning("task ended with code:", i);
+ moof::backend backend;
- std::vector<moof::socket::address>::const_iterator it;
- for (it = task.addresses().begin(); it != task.addresses().end(); ++it)
- {
- moof::socket::address addr = *it;
-
- moof::log_info("address:", addr, "(", addr.type(), ")");
- }
-
- //ASSERT(5 == 8 && "uh oh that's not right");
-
-
- std::vector<uint8_t> hi;
- for (int a = 0; a < 4000; a++)
- {
- hi.push_back(a);
- }
-
- moof::log_info("array size:", hi.size());
- moof::packet packet;
- packet << hi;
-
- //for (it = task.addresses().begin(); it != task.addresses().end(); ++it)
- //{
- //moof::socket sock(*it);
- moof::socket sock(moof::socket::address::broadcast("4950"));
- //moof::socket sock("4950", "lappy", SOCK_DGRAM);
- sock.set(SO_BROADCAST, 1);
- sock.connect();
-
- //if (sock.isConnected())
- //{
- moof::packet pack;
- pack << "hello world";
- sock.write(pack);
- //sock.write(pack, sock.address());
- moof::log_info("sent", pack.size(), "bytes");
-
- const char* data = pack.bytes();
- for (unsigned i = 0; i < pack.size(); ++i)
- {
- moof::log_warning("meh:", data[i]);
- }
-
- char data2[56];
- pack.read(data2, 13);
- for (int i = 0; i < 13; ++i)
- {
- moof::log_warning("meh:", data2[i]);
- }
- //}
- //else
- //{
- //moof::log_error("NOT CONNECTED");
- //}
- //}
-
-
- //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)
{
try
{
- std::string iconPath(PACKAGE".png");
- moof::resource::find(iconPath);
- moof::image icon(iconPath);
- icon.set_as_icon();
+ //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);