#include <LightShader.h>
Collaboration diagram for pge::LightShader:
Public Member Functions | |
LightShader (GPUProgram *lightProgram) | |
Constructor. | |
virtual | ~LightShader (void) |
Destructor. | |
bool | addActiveLight (Light *light) |
void | preRender (void) |
void | postRender (void) |
Private Attributes | |
GPUProgram * | m_program |
std::vector< Light * > | m_activeLights |
|
Constructor.
Definition at line 36 of file LightShader.h. References m_program.
00036 { 00037 m_program = lightProgram; 00038 } |
|
Destructor.
Definition at line 47 of file LightShader.h. References m_program.
00047 { 00048 m_program = NULL; 00049 } |
|
Definition at line 60 of file LightShader.h. References m_activeLights. Referenced by pge::SingleTexturedMesh::getSurroundingLights().
00060 { 00061 if(m_activeLights.size() >= 3) { 00062 return false; 00063 } else { 00064 m_activeLights.push_back(light); 00065 return true; 00066 } 00067 } |
|
Definition at line 98 of file LightShader.h. References m_activeLights, m_program, and pge::GPUProgram::release(). Referenced by pge::SingleTexturedMesh::renderVBO().
00098 { 00099 if(m_activeLights.size() != 3) { 00100 return; 00101 } 00102 m_program->release(); 00103 } |
Here is the call graph for this function:
|
Definition at line 73 of file LightShader.h. References pge::GPUProgram::bind(), m_activeLights, pge::Light::m_diffuse, pge::Light::m_position, m_program, pge::GPUProgram::passUniform1f(), pge::GPUProgram::passUniform1i(), and pge::GPUProgram::passUniform4f(). Referenced by pge::SingleTexturedMesh::renderVBO().
00073 { 00074 if(m_activeLights.size() != 3) { 00075 return; 00076 } 00077 Light *light0 = m_activeLights.at(0); 00078 Light *light1 = m_activeLights.at(1); 00079 Light *light2 = m_activeLights.at(2); 00080 00081 m_program->bind(); 00082 m_program->passUniform1f("dayNightCycle", DayNightCycle::getInstance()->getDayNightCycle()); 00083 m_program->passUniform4f("lightPosition0", light0->m_position); 00084 m_program->passUniform4f("lightColor0", light0->m_diffuse); 00085 00086 m_program->passUniform4f("lightPosition1", light1->m_position); 00087 m_program->passUniform4f("lightColor1", light1->m_diffuse); 00088 00089 m_program->passUniform4f("lightPosition2", light2->m_position); 00090 m_program->passUniform4f("lightColor2", light2->m_diffuse); 00091 m_program->passUniform1i("texture", 0); 00092 } |
Here is the call graph for this function:
|
Definition at line 120 of file LightShader.h. Referenced by addActiveLight(), postRender(), and preRender(). |
|
Definition at line 119 of file LightShader.h. Referenced by LightShader(), postRender(), preRender(), and ~LightShader(). |