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); } } }
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); }