JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL41_nglProgramUniform2ui(JNIEnv *env, jclass clazz, jint program, jint location, jint v0, jint v1, jlong function_pointer) { glProgramUniform2uiPROC glProgramUniform2ui = (glProgramUniform2uiPROC)((intptr_t)function_pointer); glProgramUniform2ui(program, location, v0, v1); }
static bool test_uint(const char *version_string) { GLint loc; bool pass = true; unsigned int values[4]; unsigned int got[ARRAY_SIZE(values)]; GLuint prog; static const char subtest_name[] = "unsigned integer scalar and vectors"; const char *const shader_strings[] = { version_string, uint_code, common_body }; BUILD_SHADER(version_string == NULL); /* Try uint */ random_uints(values, ARRAY_SIZE(values)); loc = glGetUniformLocation(prog, "v1"); glProgramUniform1ui(prog, loc, values[0]); pass = piglit_check_gl_error(0) && pass; glGetUniformuiv(prog, loc, got); pass = piglit_check_gl_error(0) && pass; pass = check_uint_values(values, got, 1) && pass; random_uints(values, ARRAY_SIZE(values)); glProgramUniform1uiv(prog, loc, 1, values); pass = piglit_check_gl_error(0) && pass; glGetUniformuiv(prog, loc, got); pass = piglit_check_gl_error(0) && pass; pass = check_uint_values(values, got, 1) && pass; /* Try uvec2 */ random_uints(values, ARRAY_SIZE(values)); loc = glGetUniformLocation(prog, "v2"); glProgramUniform2ui(prog, loc, values[0], values[1]); pass = piglit_check_gl_error(0) && pass; glGetUniformuiv(prog, loc, got); pass = piglit_check_gl_error(0) && pass; pass = check_uint_values(values, got, 2) && pass; random_uints(values, ARRAY_SIZE(values)); glProgramUniform2uiv(prog, loc, 1, values); pass = piglit_check_gl_error(0) && pass; glGetUniformuiv(prog, loc, got); pass = piglit_check_gl_error(0) && pass; pass = check_uint_values(values, got, 2) && pass; /* Try uvec3 */ random_uints(values, ARRAY_SIZE(values)); loc = glGetUniformLocation(prog, "v3"); glProgramUniform3ui(prog, loc, values[0], values[1], values[2]); pass = piglit_check_gl_error(0) && pass; glGetUniformuiv(prog, loc, got); pass = piglit_check_gl_error(0) && pass; pass = check_uint_values(values, got, 3) && pass; random_uints(values, ARRAY_SIZE(values)); glProgramUniform3uiv(prog, loc, 1, values); pass = piglit_check_gl_error(0) && pass; glGetUniformuiv(prog, loc, got); pass = piglit_check_gl_error(0) && pass; pass = check_uint_values(values, got, 3) && pass; /* Try uvec4 */ random_uints(values, ARRAY_SIZE(values)); loc = glGetUniformLocation(prog, "v4"); glProgramUniform4ui(prog, loc, values[0], values[1], values[2], values[3]); pass = piglit_check_gl_error(0) && pass; glGetUniformuiv(prog, loc, got); pass = piglit_check_gl_error(0) && pass; pass = check_uint_values(values, got, 4) && pass; random_uints(values, ARRAY_SIZE(values)); glProgramUniform4uiv(prog, loc, 1, values); pass = piglit_check_gl_error(0) && pass; glGetUniformuiv(prog, loc, got); pass = piglit_check_gl_error(0) && pass; pass = check_uint_values(values, got, 4) && pass; piglit_report_subtest_result(pass ? PIGLIT_PASS : PIGLIT_FAIL, subtest_name); glDeleteProgram(prog); return pass; }