int main(void) { GLFWwindow* window; //WskaŸnik na obiekt reprezentuj¹cy okno std::cout << "lol"<<std::endl; glfwSetErrorCallback(error_callback);//Zarejestruj procedurê obs³ugi b³êdów if (!glfwInit()) { //Zainicjuj bibliotekê GLFW fprintf(stderr, "Nie mo¿na zainicjowaæ GLFW.\n"); exit(EXIT_FAILURE); } window = glfwCreateWindow(700, 700, "OpenGL", NULL, NULL); //Utwórz okno 500x500 o tytule "OpenGL" i kontekst OpenGL. if (!window) //Je¿eli okna nie uda³o siê utworzyæ, to zamknij program { glfwTerminate(); exit(EXIT_FAILURE); } glfwMakeContextCurrent(window); //Od tego momentu kontekst okna staje siê aktywny i polecenia OpenGL bêd¹ dotyczyæ w³aœnie jego. glfwSwapInterval(1); //Czekaj na 1 powrót plamki przed pokazaniem ukrytego bufora glfwSetKeyCallback(window, key_callback); if (glewInit() != GLEW_OK) { //Zainicjuj bibliotekê GLEW fprintf(stderr, "Nie mo¿na zainicjowaæ GLEW.\n"); exit(EXIT_FAILURE); } initOpenGLProgram(window); //Operacje inicjuj¹ce float angle = 0; //K¹t obrotu torusa glfwSetTime(0); //Wyzeruj licznik czasu initTargets(); //G³ówna pêtla while (!glfwWindowShouldClose(window)) //Tak d³ugo jak okno nie powinno zostaæ zamkniête { //std::cout << glfwGetTime()<<std::endl; ship.moveCamera(glfwGetTime(), nextMove); rotateTargets(glfwGetTime()); addObjects(); moveObjects(); checkForCollision(); glfwSetTime(0); drawScene(window,angle); //Wykonaj procedurê rysuj¹c¹ glfwPollEvents(); //Wykonaj procedury callback w zaleznoœci od zdarzeñ jakie zasz³y. //Wyzeruj licznik czasu } glfwDestroyWindow(window); //Usuñ kontekst OpenGL i okno glfwTerminate(); //Zwolnij zasoby zajête przez GLFW exit(EXIT_SUCCESS); }
int main_SDL(int argc, char *argv[]) { SDL_Init(SDL_INIT_VIDEO); SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); SDL_Window* window = SDL_CreateWindow("OpenGL - SDL", 100, 100, 800, 600, SDL_WINDOW_OPENGL); SDL_GLContext context = SDL_GL_CreateContext(window); initOpenGLProgram(); SDL_Event windowEvent; while (true) { if (SDL_PollEvent(&windowEvent)) { if (windowEvent.type == SDL_QUIT) { break; } if (windowEvent.type == SDL_KEYUP && windowEvent.key.keysym.sym == SDLK_ESCAPE) { break; } } drawTriangle(); SDL_GL_SwapWindow(window); } SDL_GL_DeleteContext(context); SDL_Quit(); return 0; }