Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define GLEW_STATIC
- #include <glew/glew.h>
- #include <SFML/Window.hpp>
- #include "sparrowrenderer.h"
- #include "phongmaterial.h"
- #include "skybox.h"
- #include "camera.h"
- #include "sphere.h"
- #include "utils.h"
- #include "texture.h"
- Scene* buildScene(int width, int height)
- {
- Scene* scene = new Scene();
- Camera* cam = new Camera(width, height);
- cam->moveTo(glm::vec3(0, 0, 3));
- cam->lookAt(glm::vec2(0, 0));
- scene->setCamera(cam);
- Mesh* myGrid = new Sphere(2);
- myGrid->initGL();
- std::string vertSource = Utils::fileToString("../phong.vert");
- std::string fragSource = Utils::fileToString("../phong.frag");
- Shader* shader = new Shader(vertSource, fragSource);
- PhongMaterial* mat = new PhongMaterial(shader);
- Texture* tex = new Texture("../data/noise.png");
- mat->setTexture(tex);
- std::string filenames[6] = {
- "../data/skybox_ft", "../data/skybox_bk",
- "../data/skybox_up", "../data/skybox_dn",
- "../data/skybox_lf", "../data/skybox_rt"
- };
- SkyBox* skybox = new SkyBox(filenames);
- scene->addEntity(skybox);
- scene->addEntity(myGrid, mat);
- return scene;
- }
- int main()
- {
- SparrowRenderer* renderer;
- // crée la fenêtre
- sf::Window window(sf::VideoMode(800, 600), "OpenGL", sf::Style::Default, sf::ContextSettings(32));
- window.setVerticalSyncEnabled(true);
- renderer = new SparrowRenderer(800, 600);
- Scene* scene = buildScene(800, 600);
- renderer->setScene(scene);
- // la boucle principale
- bool running = true;
- while (running)
- {
- // gestion des évènements
- sf::Event event;
- while (window.pollEvent(event))
- {
- if (event.type == sf::Event::Closed)
- {
- // on stoppe le programme
- running = false;
- }
- else if (event.type == sf::Event::Resized)
- {
- renderer->resize(event.size.width, event.size.height);
- }
- }
- renderer->render();
- // termine la trame courante (en interne, échange les deux tampons de rendu)
- window.display();
- }
- // libération des ressources...
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement