//############################################################################################## int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(800, 600); glutInitContextVersion(3, 3); glutInitContextProfile(GLUT_CORE_PROFILE); glutCreateWindow("Warbird Simulation"); // initialize and verify glew glewExperimental = GL_TRUE; // needed my home system GLenum err = glewInit(); if (GLEW_OK != err) printf("GLEW Error: %s \n", glewGetErrorString(err)); else { printf("Using GLEW %s \n", glewGetString(GLEW_VERSION)); printf("OpenGL %s, GLSL %s\n", glGetString(GL_VERSION), glGetString(GL_SHADING_LANGUAGE_VERSION)); } // initialize objects initObjects(); // initialize cameras initCameras(); // initialize scene init(); // initialize animation speeds initAnimationSpeeds(); // set glut callback functions glutDisplayFunc(display); glutReshapeFunc(reshape); glutKeyboardFunc(keyboard); glutSpecialFunc(specialKeyEvent); glutIdleFunc(display); // start with intervalTimer glutTimerFunc(animationSpeeds[currentSpeed]->getSpeed(), intervalTimer, 1); glutMainLoop(); //Unallocate everything cleanUp(); printf("done\n"); return 0; }
// ************************************************************** void MainScene::init() { // Enables vector normalization glEnable(GL_NORMALIZE); initGlobals(); initCameras(); initLights(); unsigned long updatePeriod = 50; setUpdatePeriod(updatePeriod); display(); }
void TestScene::init() { initCameras(); initScene(); }
CGFscene::CGFscene() { iface=NULL; lastUpdate=CGFapplication::getTime(); setUpdatePeriod(0); initCameras(); }
int mainFenetre() { unsigned int frame_max = SDL_GetTicks() + FRAME_RATE, temps = 0; Input * pInput = NULL; //structure contenant les informations relatives aux inputs clavier SDL_Texture * pTextureDisplay = NULL; //Texture globale SDL_Rect camera = initRect(0, 0, 0, 0); // rect(x,y,w,h) Worms** wormsTab = NULL; char mapName[100]; Jeu* jeu = NULL; //init SDL + fenetre + renderer if (initSWR()) { //Initialisation des inputs pInput = initInput(); if (pInput == NULL) { fprintf(logFile, "mainFenetre : FAILURE, initInput.\n"); cleanUp(&pInput, &pTextureDisplay); return -1; } //InitSounds if (!initSDLMixer()){ fprintf(logFile, "initSDLMixer : FAILURE, init.\n"); cleanUp(&pInput, &pTextureDisplay); return -1; } strcpy(mapName, cMAP); /*Initialisation SDL_TTF*/ if (TTF_Init() == -1) { fprintf(logFile, "mainFenetre : FAILURE, initialisation de TTF_Init : %s.\n\n", TTF_GetError()); cleanUp(&pInput, &pTextureDisplay); return -1; } if (mainMenu(pInput, mapName) < 0) { fprintf(logFile, "mainFenetre : FAILURE, mainMenu .\n\n"); cleanUp(&pInput, &pTextureDisplay); return -1; } if (!pInput->quit) { if (mainInit() < 0) //set le nombre d'équipe et le nombre de worms par équipe { fprintf(logFile, "mainInit : FAILURE.\n"); cleanUp(&pInput, &pTextureDisplay); return -1; } /*Init game*/ jeu = nouveauJeu(mapName); if (jeu == NULL) { fprintf(logFile, "nouveauJeu : FAILURE.\n"); cleanUp(&pInput, &pTextureDisplay); return -1; } /*Init map*/ if (initialisionTerrain(&jeu->pMapTerrain, "../assets/pictures/FondMap1.png", jeu->nomMap) < 0) { fprintf(logFile, "mainFenetre : FAILURE, initialisationTerrain.\n"); cleanUp(&pInput, &pTextureDisplay); return -1; } /*Init global texture*/ pTextureDisplay = my_createTextureFromSurface(jeu->pMapTerrain->globalMapSurface); if (pTextureDisplay == NULL) { fprintf(logFile, "mainFenetre : FAILURE, createGlobalTexture.\n"); destroyMap(&jeu->pMapTerrain); cleanUp(&pInput, &pTextureDisplay); return -1; } /*Init sounds*/ if (loadSounds(BipExplo, 0) < 0) { fprintf(logFile, "mainFenetre : FAILURE, loadSounds.\n"); cleanUp(&pInput, &pTextureDisplay); return -1; } /*Init camera*/ initCameras(jeu->pMapTerrain, &camera, NULL); /*Initialisation du tableau global de worms*/ wormsTab = initWormsTab(jeu->equipes); if (wormsTab == NULL) { destroyMap(&jeu->pMapTerrain); cleanUp(&pInput, &pTextureDisplay); fprintf(logFile, "mainFenetre : FAILURE, allocating memory to the global array of worms pointer.\n\n"); return -1; } /*Init Display*/ initDisplay(jeu->pMapTerrain, pTextureDisplay); /*Initialisation des worms*/ while (!KaamInitGame(wormsTab, jeu->pMapTerrain->collisionMapSurface)) renderScreen(2, 0, jeu->pMapTerrain, 1, pTextureDisplay, &camera, NULL); } while (!(pInput->quit)) { //Récupération des inputs getInput(pInput); //Gestion des inputs if (!gestInput(pInput, jeu->pMapTerrain, pTextureDisplay, &camera, wormsTab)) { fprintf(logFile, "mainFenetre : FAILURE, gestInput.\n"); } //Update de l'écran if (pInput->raffraichissement) { renderScreen(2, 0, jeu->pMapTerrain, 1, pTextureDisplay, &camera, NULL); pInput->raffraichissement = 0; } updateTeamLife(jeu->equipes); isGameEnd(jeu->equipes); //Gestion du frame Rate frameRate(frame_max); frame_max = SDL_GetTicks() + FRAME_RATE; if ((SDL_GetTicks() - temps) >= 1000) { temps = SDL_GetTicks(); jeu->temps -= 1; } } endDisplay(); cleanSounds(); Mix_CloseAudio(); fprintf(logFile, "||| END OF THE GAME |||\n"); if (jeu != NULL) destroyMap(&jeu->pMapTerrain); destroyPolice(); if (wormsTab != NULL) free(wormsTab); wormsTab = NULL; } cleanUp(&pInput, &pTextureDisplay); fprintf(logFile, "mainFenetre : SUCCESS.\n"); if (jeu != NULL) { saveGame(jeu); destroyJeu(&jeu); } { time_t t1 = time(NULL); fprintf(logFile, "\n\nEnd of Session : %s", ctime(&t1)); fclose(logFile); }; return 0; }