//Called after the window and OpenGL are initialized. Called exactly once, before the main loop. void init() { InitializePrograms(); try { g_pScene = new Scene(); } catch(std::exception &except) { printf("%s\n", except.what()); throw; } SetupDaytimeLighting(); g_lights.CreateTimer("tetra", Framework::Timer::TT_LOOP, 2.5f); glutMouseFunc(MouseButton); glutMotionFunc(MouseMotion); glutMouseWheelFunc(MouseWheel); glEnable(GL_CULL_FACE); glCullFace(GL_BACK); glFrontFace(GL_CW); const float depthZNear = 0.0f; const float depthZFar = 1.0f; glEnable(GL_DEPTH_TEST); glDepthMask(GL_TRUE); glDepthFunc(GL_LEQUAL); glDepthRange(depthZNear, depthZFar); glEnable(GL_DEPTH_CLAMP); //Setup our Uniform Buffers glGenBuffers(1, &g_lightUniformBuffer); glBindBuffer(GL_UNIFORM_BUFFER, g_lightUniformBuffer); glBufferData(GL_UNIFORM_BUFFER, sizeof(LightBlock), NULL, GL_DYNAMIC_DRAW); glGenBuffers(1, &g_projectionUniformBuffer); glBindBuffer(GL_UNIFORM_BUFFER, g_projectionUniformBuffer); glBufferData(GL_UNIFORM_BUFFER, sizeof(ProjectionBlock), NULL, GL_DYNAMIC_DRAW); //Bind the static buffers. glBindBufferRange(GL_UNIFORM_BUFFER, g_lightBlockIndex, g_lightUniformBuffer, 0, sizeof(LightBlock)); glBindBufferRange(GL_UNIFORM_BUFFER, g_projectionBlockIndex, g_projectionUniformBuffer, 0, sizeof(ProjectionBlock)); glBindBuffer(GL_UNIFORM_BUFFER, 0); }
//Called after the window and OpenGL are initialized. Called exactly once, before the main loop. void init() { InitializePrograms(); try { g_pRealHallway = new Framework::Mesh("RealHallway.xml"); g_pFauxHallway = new Framework::Mesh("FauxHallway.xml"); } catch(std::exception &except) { printf("%s\n", except.what()); throw; } }