/** * @brief Hauptprogramm */ int main(int argc, char* argv[]) { char *end; int z; sem_init(); if(argc > 1) { if(!strcmp("-l", argv[1])) { if(argc == 3) liste(argv[2]); else if(argc == 2) liste(NULL); else rtfm(argv); } else if(!strcmp("-n", argv[1])) { if(argc == 4) neu(argv[2], argv[3]); else rtfm(argv); } else if(!strcmp("-z", argv[1])) { if(argc == 4) { z = strtoul(argv[3], &end, 0); if(argv[3] == end) { fprintf(stderr, "%s: Keine Zahl: %s\n", argv[0], argv[3]); exit(1); } zuschlag(argv[2], z); } else rtfm(argv); } else if(!strcmp("-d", argv[1])) { if(argc == 3) rechnung(argv[2]); else rtfm(argv); } else rtfm(argv); } else { rtfm(argv); } exit(0); }
void NGLScene::initializeGL() { ngl::NGLInit::instance(); glClearColor(0.4f, 0.4f, 0.4f, 1.0f); glEnable(GL_DEPTH_TEST); glEnable(GL_MULTISAMPLE); ngl::ShaderLib *shader=ngl::ShaderLib::instance(); shader->createShaderProgram("Phong"); shader->attachShader("PhongVertex",ngl::ShaderType::VERTEX); shader->attachShader("PhongFragment",ngl::ShaderType::FRAGMENT); shader->loadShaderSource("PhongVertex","shaders/PhongVertex.glsl"); shader->loadShaderSource("PhongFragment","shaders/PhongFragment.glsl"); shader->compileShader("PhongVertex"); shader->compileShader("PhongFragment"); shader->attachShaderToProgram("Phong","PhongVertex"); shader->attachShaderToProgram("Phong","PhongFragment"); shader->bindAttribute("Phong",0,"inVert"); shader->bindAttribute("Phong",1,"inUV"); shader->bindAttribute("Phong",2,"inNormal"); shader->linkProgramObject("Phong"); (*shader)["Phong"]->use(); ngl::Material m(ngl::STDMAT::GOLD); m.loadToShader("material"); ngl::Vec3 from(0,0,-10); ngl::Vec3 to(0,0,0); ngl::Vec3 up(0,1,0); m_cam.set(from,to,up); m_cam.setShape(45.0f,(float)720.0/576.0f,0.05f,350.0f); shader->setUniform("viewerPos",m_cam.getEye().toVec3()); ngl::Mat4 iv=m_cam.getViewMatrix(); iv.transpose(); ngl::Light light(ngl::Vec3(0,5,-10),ngl::Colour(1,1,1,1),ngl::Colour(1,1,1,1),ngl::LightModes::POINTLIGHT ); light.setTransform(iv); light.loadToShader("light"); m_track.initialize(); rtfm(); }