int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowSize(screen_width, screen_height); glutInitWindowPosition(0, 0); glutCreateWindow("Tatry"); glutDisplayFunc(rysuj); // def. funkcji rysującej glutIdleFunc(rysuj); // def. funkcji rysującej w czasie wolnym procesoora (w efekcie: ciągle wykonywanej) glutReshapeFunc(rozmiar); // def. obsługi zdarzenia resize (GLUT) glutKeyboardFunc(klawisz); // def. obsługi klawiatury glutMouseFunc(mysz); // def. obsługi zdarzenia przycisku myszy (GLUT) glutMotionFunc(mysz_ruch); // def. obsługi zdarzenia ruchu myszy (GLUT) resetKamery(); /* --- Przygotowanie danych --- */ wczytajDane(); wyznaczMax(); wyznaczMin(); normalizujTablice(); /* --- Menu kontekstowe --- */ int Swiatlo = glutCreateMenu(menuSwiatlo); glutAddMenuEntry("Wlacz reflektor", WLACZ_REFL); glutAddMenuEntry("Wylacz reflektor", WYLACZ_REFL); glutAddMenuEntry("Wlacz swiatlo kierunkowe", WLACZ_KIER); glutAddMenuEntry("Wylacz swiatlo kierunkowe", WYLACZ_KIER); int Skala = glutCreateMenu(menuSkala); glutAddMenuEntry("Skala szarosci", SKALA_SZARA); glutAddMenuEntry("Skala kolorow", SKALA_KOLOR); glutAddMenuEntry("Bez skali", SKALA_SIATKA); glutCreateMenu(menuSwiatlo); glutAddSubMenu("Swiatlo", Swiatlo); glutAddSubMenu("Skala", Skala); glutAddMenuEntry("Wyjscie", EXIT); glutAttachMenu(GLUT_RIGHT_BUTTON); /* ---------------------- */ glEnable(GL_DEPTH_TEST); glutMainLoop(); return 0; }
int main(int argc, char **argv) { #define _KONFIGURACJA #include "konfiguracja.cpp" if (argc > 1 && argv[1][0] == '-' && argv[1][1] == 's') // poprawki w konfiguracji na podstawie parametró (te maj¹ pierwszeñstwo) { stereoTryb = 2; oknoSzerkosc=800; oknoWysokosc=600; } glutInit(&argc, argv); // INIT - wszystkie funkcje obs³ugi okna i przetwzrzania zdarzeñ realizuje GLUT glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH); if (stereoTryb == 2) { glutInitWindowSize(oknoSzerkosc-8,oknoWysokosc); glutInitWindowPosition(0,0); oknoLewe = glutCreateWindow("Lewe"); // ==1 HWND hwnd = FindWindow(NULL, "Lewe"); SetWindowLong(hwnd, GWL_STYLE, WS_BORDER | WS_MAXIMIZE); glutSetWindow(oknoLewe); windowInit(); glutReshapeFunc (rozmiarLewe); // def. obs³ugi zdarzenia resize (GLUT) glutKeyboardFunc (KlawiszKlawiaturyWcisniety); // def. obs³ugi klawiatury glutSpecialFunc (KlawiszSpecjalnyWcisniety); // def. obs³ugi klawiatury (klawisze specjalne) glutMouseFunc (PrzyciskMyszyWcisniety); // def. obs³ugi zdarzenia przycisku myszy (GLUT) glutMotionFunc (RuchKursoraMyszy); // def. obs³ugi zdarzenia ruchu myszy (GLUT) glutDisplayFunc(rysuj); // def. funkcji rysuj¹cej glutInitWindowSize(oknoSzerkosc-8,oknoWysokosc); glutInitWindowPosition(oknoSzerkosc+4,0); oknoPrawe = glutCreateWindow("Prawe"); // ==2 glutSetWindow(oknoPrawe); windowInit(); hwnd = FindWindow(NULL, "Prawe"); SetWindowLong(hwnd, GWL_STYLE, WS_BORDER | WS_MAXIMIZE); glutReshapeFunc (rozmiarPrawe); // def. obs³ugi zdarzenia resize (GLUT) glutKeyboardFunc (KlawiszKlawiaturyWcisniety); // def. obs³ugi klawiatury glutSpecialFunc (KlawiszSpecjalnyWcisniety); // def. obs³ugi klawiatury (klawisze specjalne) glutMouseFunc (PrzyciskMyszyWcisniety); // def. obs³ugi zdarzenia przycisku myszy (GLUT) glutMotionFunc (RuchKursoraMyszy); // def. obs³ugi zdarzenia ruchu myszy (GLUT) glutDisplayFunc(rysuj); // def. funkcji rysuj¹cej } else { // jedno okno glutInitWindowSize(oknoSzerkosc,oknoWysokosc); glutInitWindowPosition(0,0); oknoLewe = glutCreateWindow("Szablon"); windowInit(); glutReshapeFunc (rozmiar); // def. obs³ugi zdarzenia resize (GLUT) glutKeyboardFunc (KlawiszKlawiaturyWcisniety); // def. obs³ugi klawiatury glutSpecialFunc (KlawiszSpecjalnyWcisniety); // def. obs³ugi klawiatury (klawisze specjalne) glutMouseFunc (PrzyciskMyszyWcisniety); // def. obs³ugi zdarzenia przycisku myszy (GLUT) glutMotionFunc (RuchKursoraMyszy); // def. obs³ugi zdarzenia ruchu myszy (GLUT) glutDisplayFunc(rysuj); // def. funkcji rysuj¹cej } if (stereoTryb == 1 || !timing100FPS) glutIdleFunc(timer); else glutTimerFunc(10,syncTimer,10); resetKamery(); //srand( (unsigned)time( NULL ) ); // generator liczb losowych ladujModele(); aktywujSpecjalneRenderowanieModelu("woda",1); aktywujSpecjalneRenderowanieModelu("most",2); if (oknoFullScreen && stereoTryb != 2) glutFullScreen(); glutMainLoop(); return(0); }