예제 #1
0
 void Shader::setUniform(const char* name, Matrix3 nm)
 {
   GLint location = glGetUniformLocation(_programInfo->glID, name);
   float packed[9] = {
     nm.getRow(0).getX(), nm.getRow(1).getX(), nm.getRow(2).getX(),
     nm.getRow(0).getY(), nm.getRow(1).getY(), nm.getRow(2).getY(),
     nm.getRow(0).getZ(), nm.getRow(1).getZ(), nm.getRow(2).getZ() };
   glUniformMatrix3fv(location, 1, 0, &packed[0]);
 }
예제 #2
0
void SetUniform(const char* name, Matrix3 nm)
{
    GLuint program;
    glGetIntegerv(GL_CURRENT_PROGRAM, (GLint*) &program);
    GLint location = glGetUniformLocation(program, name);
    float packed[9] = {
        nm.getRow(0).getX(), nm.getRow(1).getX(), nm.getRow(2).getX(),
        nm.getRow(0).getY(), nm.getRow(1).getY(), nm.getRow(2).getY(),
        nm.getRow(0).getZ(), nm.getRow(1).getZ(), nm.getRow(2).getZ() };
    glUniformMatrix3fv(location, 1, 0, &packed[0]);
}