SparrowRenderer/sparrowrenderer.cpp

52 lines
1.4 KiB
C++

#include "sparrowrenderer.h"
#include <glew/glew.h>
#include <iostream>
#include "glassert.h"
#include "camera.h"
SparrowRenderer::SparrowRenderer(int width, int height)
{
glewExperimental = GL_TRUE;
GLenum err = glewInit();
if (GLEW_OK != err)
{
std::cerr << "Warning: glewInit failed!" << std::endl;
}
if (!GLEW_ARB_vertex_program ||
!GLEW_ARB_fragment_program ||
!GLEW_ARB_texture_float ||
!GLEW_ARB_draw_buffers ||
!GLEW_ARB_framebuffer_object)
{
std::cerr << "Warning: Shaders not supported!" << std::endl;
}
std::cout << "OpenGL version " << glGetString(GL_VERSION) << std::endl;
std::cout << "GLSL version " << glGetString(GL_SHADING_LANGUAGE_VERSION) << std::endl;
glAssert(glEnable(GL_DEPTH_TEST));
glAssert(glEnable(GL_CULL_FACE));
glAssert(glEnable(GL_TEXTURE_2D));
glAssert(glViewport(0, 0, width, height));
}
void SparrowRenderer::setScene(Scene* myScene)
{
scene = myScene;
}
void SparrowRenderer::resize(int width, int height)
{
glAssert(glViewport(0, 0, width, height));
if(scene != NULL)
scene->getCamera()->resize(width, height);
}
void SparrowRenderer::render()
{
glAssert(glClearColor(0.60, 0.65, 0.75, 1.0));
glAssert(glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT));
if(scene != NULL)
scene->drawAll();
}