예제 #1
0
int main(int argc, char* argv[])
{

    QApplication app(argc, argv);
    MainWindow myWindow(0, Qt::Window);
    myWindow.show();

    return app.exec();
}
예제 #2
0
int main(int argc, char* argv[]) {

	glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);
    glutInitWindowSize(INITIAL_WIDTH, INITIAL_HEIGHT);
    glutCreateWindow("CG Final Project");
#ifndef __APPLE__
    glewInit();
#endif
    if (!GLEW_VERSION_2_0) {
        fprintf(stderr, "OpenGL 2.0 not available\n");
    }
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_CULL_FACE);
	glCullFace(GL_BACK);
    glClearColor(.9f, 1.0f, 1.0f, 1.0f);
	//glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); //used for wire frames

	Shader myShader("v.glsl", "f.glsl");
	Window myWindow(&myShader, argc, argv);

	float translation[3] = { -1, 2.5, -1.5}; 
	Flag *flag = new Flag("american.jpg");
	Flagpole *flagpole = new Flagpole("InteriorWoodFlooringMedium_01.jpg");
	flagpole->rotateY(90);
	flag->rotateZ(-90);
	flag->rotateX(-10);
	flagpole->rotateZ(90);
	flag->rotateY(20);
	flagpole->rotateY(20);
	flag->translate(translation);
	flagpole->translate(translation);
	myWindow.addMesh(flag);
	myWindow.addMesh(flagpole);
	
	translation[0] = 1.6; translation[1] = -0.2; translation[2] = -1;
	float scale[3] = {1.5,1.5,1.5};
	objMesh *couch = new objMesh("leather.jpg", "Couch.obj", true, true, 10, brown);
	objMesh *couch2 = new objMesh("leather.jpg", "Couch2.obj", true, true, 100, brown);
	couch->scale(scale); 	couch2->scale(scale);  
	couch->translate(translation); 	
	translation[0] = 1.1; translation[1] = 0; translation[2] = -1.3; 
	couch2->translate(translation);
	myWindow.addMesh(couch); myWindow.addMesh(couch2);

	translation[0] = 0; translation[1] = -1; translation[2] = 0; 
	objMesh *cowhide = new objMesh("fur.jpg", "cowhide.obj", true, true, 100, black);
	cowhide->translate(translation);
	myWindow.addMesh( cowhide );
	
	translation[0] = 2; translation[1] = 0.3; translation[2] = -1; 
	objMesh *lamp = new objMesh("metallic.jpg", "Light.obj", true, true, 1, grey);
	lamp->rotateY(-60);
	lamp->translate(translation);
	myWindow.addMesh(lamp);

	translation[0] = -2; translation[1] = -1; translation[2] = -1; 
	objMesh *table = new objMesh("wood.jpg", "Coffee.obj", true, true, 100, brown);
	table->translate(translation);
	myWindow.addMesh(table);

	translation[0] = 0; translation[1] = -1; translation[2] = .3; 
	objMesh *books = new objMesh("red.jpg", "Books.obj", true, true, 100, red);
	books->translate(translation);
	myWindow.addMesh(books);

	translation[0] = -2; translation[1] = -0.4; translation[2] = -1; 
	objMesh *twig = new objMesh("", "Twig.obj", true, true, 10, dRed);
	twig->translate(translation);
	myWindow.addMesh(twig);

	translation[0] = -2; translation[1] = -0.4; translation[2] = -0.7; 
	objMesh *glass = new objMesh("glass.jpg", "Water.obj", true, true, 40, blue);
	glass->translate(translation);
	myWindow.addMesh(glass);

	translation[0] = -0.5; translation[1] = -0.2; translation[2] = -1; 
	objMesh *cushion = new objMesh("stripes.jpg", "Cushion.obj", true, true, 10, white);
	cushion->scale(scale);
	cushion->rotateX(90);
	cushion->translate(translation);
	myWindow.addMesh(cushion);

	translation[0] = 0.9; 
	objMesh *cushion2 = new objMesh("stripes.jpg", "Cushion.obj", true, true, 10, white);
	cushion2->scale(scale);
	cushion2->rotateX(90);
	cushion2->translate(translation);
	myWindow.addMesh(cushion2);

	myWindow.addMesh(new Wall("brick-background.jpg", 8, 4, 100, red, wall1_lo, wall1_hi) );
	myWindow.addMesh(new Wall("white.jpg", 1, 1, 40, white, wall2_lo, wall2_hi) );
	myWindow.addMesh(new Wall("white.jpg", 1, 1, 40, white, wall3_lo, wall3_hi) );
	myWindow.addMesh(new GROUND("InteriorWoodFlooringMedium_01.jpg", 
					 8, 8, 200, white, floor_lo, floor_hi) );

	glutMainLoop();
}
예제 #3
0
int main()
{
        // Create the main window
        sf::Window myWindow(sf::VideoMode(800, 600, 32), "SFML/NeHe OpenGL");

        initGL();
        resizeGLScene(800, 600);

        // Start game loop
        while (myWindow.isOpen())
        {
                // Process events
                sf::Event event;
                while (myWindow.pollEvent(event))
                {
                        // Close window : exit

                        switch (event.type) {
                                case sf::Event::Closed:
                                        myWindow.close();
                                        break;

                                // Resize event : adjust viewport
                                case sf::Event::Resized:
                                        resizeGLScene(event.size.width, event.size.height);
                                        break;

                                // Handle keyboard events
                                case sf::Event::KeyPressed:
                                        switch (event.key.code) {
                                                case sf::Keyboard::Escape:
                                                        myWindow.close();
                                                        break;

                                                case sf::Keyboard::F1:
                                                        fullscreen = !fullscreen;
                                                        myWindow.create(fullscreen ? sf::VideoMode::getDesktopMode() : sf::VideoMode(800, 600, 32),
                                                                        "SFML/NeHe OpenGL",
                                                                        (fullscreen ? sf::Style::Fullscreen : sf::Style::Resize | sf::Style::Close));

                                                        {
                                                                sf::Vector2u size = myWindow.getSize();
                                                                resizeGLScene(size.x,size.y);
                                                        }
                                                        break;

                                                case sf::Keyboard::F5:
                                                        vsync = !vsync;
                                                        break;
                                        }
                                        break;
                        }
                }

                // Turn VSYNC on so that animations run at a more reasonable speed on new CPU's/GPU's.
                myWindow.setVerticalSyncEnabled(vsync);

                // Set the active window before using OpenGL commands
                // It's useless here because active window is always the same,
                // but don't forget it if you use multiple windows or controls
                myWindow.setActive();

                //Draw some pretty stuff
                drawGLScene();

                // Finally, display rendered frame on screen
                myWindow.display();
        }

        return EXIT_SUCCESS;
}