예제 #1
0
void Renderer::SetMultiVSConstant3fv(unsigned int const_number, unsigned int count, const float *f)
{
   if(GLEW_EXT_gpu_program_parameters)
	{
        float buf[4 * C_VENVCONST_END];
        for (unsigned int i = 0; i < count; i++)
	    {
		    buf[4*i  ] = *f++;
    		buf[4*i+1] = *f++;
	    	buf[4*i+2] = *f++;
	    	buf[4*i+3] = 0.f;
	    }
        glProgramEnvParameters4fvEXT(GL_VERTEX_PROGRAM_ARB, const_number, count, buf);
    }
    else
    {
        for (unsigned int i = 0; i < count; i++)
	    {
		    float buf[4];
		    buf[0] = *f++;
		    buf[1] = *f++;
		    buf[2] = *f++;
		    buf[3] = 0.f;
		    glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, const_number + i, buf);
	    }
    }
}
예제 #2
0
void Renderer::SetMultiVSConstant4fv(unsigned int const_number, unsigned int count, const float *f)
{
    if(GLEW_EXT_gpu_program_parameters)
    {
       glProgramEnvParameters4fvEXT(GL_VERTEX_PROGRAM_ARB, const_number, count, f);
    }
    else
    {
        for (unsigned int i = 0; i < count; i++,f+=4)
            glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, const_number + i, f);
    }
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTGpuProgramParameters_nglProgramEnvParameters4fvEXT(JNIEnv *env, jclass clazz, jint target, jint index, jint count, jlong params, jlong function_pointer) {
	const GLfloat *params_address = (const GLfloat *)(intptr_t)params;
	glProgramEnvParameters4fvEXTPROC glProgramEnvParameters4fvEXT = (glProgramEnvParameters4fvEXTPROC)((intptr_t)function_pointer);
	glProgramEnvParameters4fvEXT(target, index, count, params_address);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTGpuProgramParameters_nglProgramEnvParameters4fvEXT(JNIEnv *env, jclass clazz, jint target, jint index, jint count, jobject params, jint params_position, jlong function_pointer) {
	const GLfloat *params_address = ((const GLfloat *)(*env)->GetDirectBufferAddress(env, params)) + params_position;
	glProgramEnvParameters4fvEXTPROC glProgramEnvParameters4fvEXT = (glProgramEnvParameters4fvEXTPROC)((intptr_t)function_pointer);
	glProgramEnvParameters4fvEXT(target, index, count, params_address);
}