DeferredRenderer 1.0
|
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 }