コード例 #1
0
//----------------------------------------------------------------------------
int main(int argc, char* argv[])
{
	if ( !open_libs() )  {
		IDOS->Printf("Can't open libraries.\n");
		return -1;
	}

	ClassLibrary* requester =
		IIntuition->OpenClass("requester.class", 51, &RequesterClass);
	ClassLibrary* window =
		IIntuition->OpenClass("window.class", 51, &WindowClass);
	if ( requester == 0 || window == 0 )
	{
		IDOS->Printf("Can't open classes.\n");
		IIntuition->CloseClass(requester);
		IIntuition->CloseClass(window);
		close_libs();
		return -1;
	}

	int rc = agg_main(argc, argv);

	IIntuition->CloseClass(window);
	IIntuition->CloseClass(requester);
	close_libs();

	return rc;
}
コード例 #2
0
ファイル: lua_loader.cpp プロジェクト: hjhong/YDWE
		lua_State* initialize()
		{
			lua_State* L = luaL_newstate2();
			open_libs(L);
			clear_searchers_table(L);
			open_lua_engine(L);
			runtime::initialize();
			return L;
		}
コード例 #3
0
ファイル: host1.cpp プロジェクト: xiangxiaobaog3/codelab
int main(int argc, char** argv)
{
    for (int n=1; n<argc; ++n)
    {
        Lua_State L;
        open_libs(L);
        int s = luaL_loadfile(L, argv[n]);

        if (s==0) 
            s = execute_program(L);
        report_errors(L, s);
        // lua_close(L) automatically called here
    }
    return 0;

}
コード例 #4
0
int main(void)
{
    struct TrackedResources *crs = NULL;
    struct TrackedResources *start_rs = NULL;
    BOOL quitme = FALSE;
    int numlines = 30;
    struct Task *this;
    ULONG  portsig;
    struct MsgPort *port;

    this = FindTask(NULL);

    port = CreateMsgPort();
    if (!port)
	return 2;
    port->mp_Node.ln_Name = "LeakWatch";
    port->mp_Node.ln_Pri  = 0;
    AddPort(port);

    portsig = 1L << port->mp_SigBit;

    open_libs();

    FPuts(Output(), "LeakWatch running, CTRL-C to exit, CTRL-E to watch for leaks since beginning, CTRL-F to watch for leaks since last CTRL-F, CTRL-D for an usage snapshot\n");

    crs = NewResourcesState();
    if (NULL == crs)
	quitme = TRUE;
    else
	start_rs = CopyResourcesState(crs);

    while(!quitme)
    {
	ULONG signals;

	signals = Wait(portsig | SIGBREAKF_CTRL_F | SIGBREAKF_CTRL_E | SIGBREAKF_CTRL_D | SIGBREAKF_CTRL_C);

	if (signals & SIGBREAKF_CTRL_D)
	{
	    struct TrackedResources *tr;

	    tr = NewResourcesState();
	    if (NULL == tr)
	    {
		quitme = TRUE;
		break;
	    }
	    DisplayResourcesState(tr, numlines);
	    DeleteResourcesState(tr);
	}
	if (signals & SIGBREAKF_CTRL_E)
	{
	    struct ResourceDiff *rd = NULL;

	    DeleteResourcesState(crs);
	    crs = NewResourcesState();
	    if (NULL == crs)
	    {
		quitme = TRUE;
		break;
	    }
	    /*  DisplayResourcesState(crs); */ /* only for debug */
	    rd = NewStateDiff(start_rs, crs);
	    DisplayStateDiff(rd, numlines);
	    DeleteStateDiff(rd);
	}
	if (signals & SIGBREAKF_CTRL_F)
	{
	    struct TrackedResources *ors = crs;
	    struct ResourceDiff *rd = NULL;

	    crs = NewResourcesState();
	    if (NULL == crs)
	    {
		quitme = TRUE;
		break;
	    }
	    rd = NewStateDiff(ors, crs);
	    DisplayStateDiff(rd, numlines);
	    DeleteStateDiff(rd);
	    DeleteResourcesState(ors);
	}
	if (signals & SIGBREAKF_CTRL_C)
	{
	    quitme = TRUE;
	}
	if (signals & portsig)
	{
	    struct Message *msg;

	    while((msg = (struct Message *)GetMsg(port)))
	    {
		D(bug("Received watch message.\n"));

		ReplyMsg(msg);
	    }

	}
    } /* while(!quitme) */

    DeleteResourcesState(crs);
    DeleteResourcesState(start_rs);

    close_libs();

    if (port)
    {
	RemPort(port);
    	DeleteMsgPort(port);
    }
    return 0;
}
コード例 #5
0
ファイル: main.cpp プロジェクト: JackShannon/nirvash
void init_game(Nepgear::State *ng)
{
	Nepgear::Configuration conf("config.lua");
	Nepgear::Logger log(NULL);

	ng->lua = lua_open();

	open_libs(ng->lua);

	Nepgear::Window w;
	Nepgear::WindowFlags f;
	{
		std::string renderer = conf.get_string("Renderer", "OpenGL");
		int major = 2;
		int minor = 1;	

		/* Parse OpenGL major/minor version out of the preference.
		 * Format: OpenGL_X.Y */
		size_t pos = renderer.find_first_of("_");
		if (pos != std::string::npos)
		{
			std::string version = renderer.substr(pos+1);
			std::string upper, lower;
			log.debug("Requested OpenGL version " + version);

			pos = version.find_first_of(".");

			upper = version.substr(0, pos);
			lower = version.substr(pos+1);

			major = atoi(upper.c_str());
			minor = atoi(lower.c_str());
		}
		
		f.width = conf.get_integer("DisplayWidth", 1280);
		f.height = conf.get_integer("DisplayHeight", 720);

		f.gl_major = major;
		f.gl_minor = minor;

		f.strict = major >= 3;
		f.mode = Nepgear::WindowFlags::Windowed;
		f.homie = NULL;
	}
	w.Create(f);

	ng->windows.push_back(&w);

	// wait a moment for configuration to be worked out in the GL thread
	while (!ng->start)
		tthread::this_thread::sleep_for(tthread::chrono::milliseconds(2));

	while (ng->running)
	{
		/* HACK: glfwWaitEvents misbehaves for me using nvidia's 295.20 drivers
		 * and a GT 330. Workaround: force poll on first update in other thread
		 */
		if (!ng->configuration["enable_wait_hack"])
			glfwWaitEvents();
		else
			tthread::this_thread::sleep_for(tthread::chrono::milliseconds(16));

		if (glfwGetKey(w.GetHandle(), GLFW_KEY_ESC) == GLFW_PRESS ||
			glfwGetWindowParam(w.GetHandle(), GLFW_CLOSE_REQUESTED))
		{
			Nepgear::LockGuard<Nepgear::Mutex>::type hold(ng->lock);
			ng->running = false;
		}
	}

	w.Destroy();
}