DeferredRenderer 1.0

ScreenQuad.cpp

Go to the documentation of this file.
00001 #include "ScreenQuad.h"
00002 #include "ngl/ShaderManager.h"
00003 #include "ngl/Types.h"
00004 #include "ngl/TransformStack.h"
00005 
00006 #ifdef DARWIN
00007   #define glGenVertexArrays glGenVertexArraysAPPLE
00008   #define glBindVertexArray glBindVertexArrayAPPLE
00009 #endif
00010 
00011 ScreenQuad::ScreenQuad(){}
00012 ScreenQuad::ScreenQuad(const float &_x,const float &_y,const float &_depth,const float &_extent)
00013 {
00014     m_x = _x;
00015     m_y = _y;
00016     m_depth = _depth;
00017     m_extent = _extent;
00018 }
00019 ScreenQuad::~ScreenQuad(){}
00020 
00021 void ScreenQuad::draw(const std::string &_shaderName, unsigned int &_vao)
00022 {
00023     ngl::ShaderManager *shader = ngl::ShaderManager::instance();
00024     (*shader)[_shaderName]->use();
00025 
00026     shader->setShaderParam4f(_shaderName, "u_CentreDepthExtent",
00027                              m_x,
00028                              m_y,
00029                              m_depth,
00030                              m_extent);
00031 
00032     // now we bind back our vertex array object and draw
00033     glBindVertexArray(_vao);    // select first VAO
00034 
00035     glDrawArrays(GL_QUADS, 0, 4); // draw first object
00036 
00037     // go back to default just incase
00038     glEnableVertexAttribArray(0);
00039     glBindVertexArray(0);
00040 }
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines