예제 #1
0
void ProgramUniformGLSL::Get(float &fX, float &fY)
{
	float fElements[2];
	glGetUniformfvARB(m_nOpenGLProgram, m_nOpenGLUniformLocation, fElements);
	fX = fElements[0];
	fY = fElements[1];
}
/*
 * getUniformfv
 *
 * parameter name - char*
 * parameter values - GLfloat*
 */
void ShaderObject::getUniformfv(const char * name, GLfloat* values) {
    GLint location;
    location = glGetUniformLocationARB(shaderObject, name);
    if (location == -1) {
        std::cout << "Error: can't find uniform variable \"" << name << "\"" << std::endl;
    }
    glGetUniformfvARB(shaderObject, location, values);

} // end getUniformfv()
예제 #3
0
Vector4D    GlslProgram :: getUniformVector ( const char * name )
{
    float   values [4];

    int loc = glGetUniformLocationARB ( program, name );

    if ( loc < 0 )
        return Vector4D ( 0, 0, 0, 0 );

    glGetUniformfvARB ( program, loc, values );

    return Vector4D ( values [0], values [1], values [2], values [3] );
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_ARBShaderObjects_nglGetUniformfvARB(JNIEnv *env, jclass clazz, jint programObj, jint location, jobject params, jint params_position, jlong function_pointer) {
	GLfloat *params_address = ((GLfloat *)(*env)->GetDirectBufferAddress(env, params)) + params_position;
	glGetUniformfvARBPROC glGetUniformfvARB = (glGetUniformfvARBPROC)((intptr_t)function_pointer);
	glGetUniformfvARB(programObj, location, params_address);
}
예제 #5
0
void ProgramUniformGLSL::Get(Matrix4x4 &mMatrix)
{
	glGetUniformfvARB(m_nOpenGLProgram, m_nOpenGLUniformLocation, mMatrix.fM);
}
예제 #6
0
void ProgramUniformGLSL::Get4(float *pfComponents)
{
	glGetUniformfvARB(m_nOpenGLProgram, m_nOpenGLUniformLocation, pfComponents);
}
예제 #7
0
void ProgramUniformGLSL::Get(Quaternion &qQuaternion)
{
	glGetUniformfvARB(m_nOpenGLProgram, m_nOpenGLUniformLocation, qQuaternion.fQ);
}
예제 #8
0
void ProgramUniformGLSL::Get(Color4 &cColor)
{
	glGetUniformfvARB(m_nOpenGLProgram, m_nOpenGLUniformLocation, cColor.fColor);
}
예제 #9
0
void ProgramUniformGLSL::Get(Vector4 &vVector)
{
	glGetUniformfvARB(m_nOpenGLProgram, m_nOpenGLUniformLocation, vVector.fV);
}
예제 #10
0
void ProgramUniformGLSL::Get(float &fX)
{
	glGetUniformfvARB(m_nOpenGLProgram, m_nOpenGLUniformLocation, &fX);
}
예제 #11
0
void WShaderProgram::getValue1f( const char *name, float &v1 )
{
	GLint loc = glGetUniformLocationARB( programId(), name );
	glGetUniformfvARB( programId(), loc, &v1 );
}