JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL41_nglProgramUniform3ui(JNIEnv *env, jclass clazz, jint program, jint location, jint v0, jint v1, jint v2, jlong function_pointer) {
	glProgramUniform3uiPROC glProgramUniform3ui = (glProgramUniform3uiPROC)((intptr_t)function_pointer);
	glProgramUniform3ui(program, location, v0, v1, v2);
}
Example #2
0
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;
}