void RenderEngine::render(double dtime)
{
glClearColor(sky.r, sky.g, sky.b, 1.0); CHECKERR
-
+
/*
glEnable(GL_CULL_FACE); CHECKERR
glCullFace(GL_BACK); CHECKERR
glFrontFace(GL_CW); CHECKERR
*/
-
+
glEnable(GL_DEPTH_TEST); CHECKERR
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); CHECKERR
-
+
dvec2 window_size = window->getSize();
mat4 projection_matrix = perspective(radians(fov), window_size.x / window_size.y, 0.01, render_distance);
-
+
mat4 view_matrix = camera->getViewMatrix();
-
+
Frustum frustum(projection_matrix * view_matrix);
-
+
scene->render(dtime, &frustum, projection_matrix, view_matrix, sky);
-
+
window->swapBuffers(); CHECKERR
glfwPollEvents(); CHECKERR
}
if (! glfwInit()) {
throw runtime_error("Failed to initialize GLFW");
}
+
+ glfwWindowHint(GLFW_SAMPLES, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
-
+
window = Window::create(this);
camera = new Camera;
scene = new Scene;
-
+
GLenum glew_init_err = glewInit();
if (glew_init_err != GLEW_OK) {
throw runtime_error("Failed to initialize GLEW");