Esempio n. 1
0
MWindow * MEditor::createWindow(const char * title, int x, int y, unsigned int width, unsigned int height, void (* eventCallback)(MWindow * rootWindow, MWIN_EVENT_TYPE event))
{
	return MGUI_createWindow(title, x, y, width, height, eventCallback);
}
Esempio n. 2
0
// main
int main(int argc, char **argv)
{
    setlocale(LC_NUMERIC, "C");

    char dir[256];
    getDirectory(dir, argv[0]);
    MGUI_setCurrentDirectory(dir);

    // get engine
    MEngine *engine = MEngine::getInstance();

    // init
    if (!MGUI_init())
        return EXIT_FAILURE;

    // add loaders
    M_initFreeImage();

    engine->getImageLoader()->addLoader(M_loadImage); // image loader
    //engine->getSoundLoader()->addLoader(M_loadSound); // sound loader
    //engine->getLevelLoader()->addLoader(xmlLevelLoad); // level loader : uncomment if wanted
    engine->getFontLoader()->addLoader(M_loadFont); // font loader
    //engine->getFontLoader()->addLoader(M_loadBinFont); // bin font loader : uncomment if wanted

    // mesh loader
    engine->getMeshLoader()->addLoader(xmlMeshLoad);
    engine->getArmatureAnimLoader()->addLoader(xmlArmatureAnimLoad);
    engine->getTexturesAnimLoader()->addLoader(xmlTextureAnimLoad);
    engine->getMaterialsAnimLoader()->addLoader(xmlMaterialAnimLoad);

    // create main window
    MWindow *window = MGUI_createWindow("Manual Use", 10, 10, 800, 600, winEvents);
    if (!window)
    {
        MGUI_close();
        M_closeFreeImage();
        return EXIT_FAILURE;
    }

    window->setDrawCallback(drawCallback);

    const float frequency = 60.0;
    double currentTick, startTick = MGUI_getTime();
    unsigned int numFrame = 0;
    unsigned int currFrame = 0;
    unsigned int prevFrame = startTick * frequency;
    unsigned int steps, i;

    // update
    while (1)
    {
        ++numFrame;
        currentTick = MGUI_getTime();

        if (currentTick - startTick >= 1.0)
        {
            startTick += 1.0;

            MLOG(6, "fps: " << numFrame << ", ft: " << 1000.0f / numFrame << "ms");

            numFrame = 0;
        }

        currFrame = currentTick * frequency;
        steps = currFrame - prevFrame;
        prevFrame = currFrame;

        for (i = 0; i < steps; i++)
            game->update();

        if (!MGUI_update())
            break;
    }

    MGUI_close();
    M_closeFreeImage();
    return EXIT_SUCCESS;
}