bool begin()
	{
		bool Validated(true);
		Validated = Validated && this->checkExtension("GL_ARB_internalformat_query2");

		GLint64 Query_COMPRESSED_RGB8_ETC2(0);
		glGetInternalformati64v(GL_TEXTURE_2D, GL_RGB4, GL_INTERNALFORMAT_PREFERRED, sizeof(GLint64), &Query_COMPRESSED_RGB8_ETC2);
		GLint64 Query_RGBA8(0);
		glGetInternalformati64v(GL_TEXTURE_2D, GL_RGBA8, GL_FILTER, sizeof(GLint64), &Query_RGBA8);
		GLint64 Query_COMPRESSED_RGBA_BPTC_UNORM(0);
		glGetInternalformati64v(GL_TEXTURE_2D, GL_RGBA8, GL_NUM_SAMPLE_COUNTS, sizeof(GLint64), &Query_COMPRESSED_RGBA_BPTC_UNORM);

		if(Query_COMPRESSED_RGBA_BPTC_UNORM > 0)
		{
			std::vector<GLint64> Query_SamplesCOMPRESSED_RGBA_BPTC_UNORM;
			Query_SamplesCOMPRESSED_RGBA_BPTC_UNORM.resize(Query_COMPRESSED_RGBA_BPTC_UNORM);
			glGetInternalformati64v(GL_TEXTURE_2D, GL_RGBA8, GL_SAMPLES, sizeof(GLint64), &Query_SamplesCOMPRESSED_RGBA_BPTC_UNORM[0]);
		}

		if(Validated)
			Validated = initProgram();
		if(Validated)
			Validated = initBuffer();
		if(Validated)
			Validated = initVertexArray();
		if(Validated)
			Validated = initTexture();

		return Validated;
	}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL43_nglGetInternalformati64v(JNIEnv *__env, jclass clazz, jint target, jint internalformat, jint pname, jint bufSize, jlong paramsAddress, jlong __functionAddress) {
	GLint64 *params = (GLint64 *)(intptr_t)paramsAddress;
	glGetInternalformati64vPROC glGetInternalformati64v = (glGetInternalformati64vPROC)(intptr_t)__functionAddress;
	UNUSED_PARAMS(__env, clazz)
	glGetInternalformati64v(target, internalformat, pname, bufSize, params);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL43_nglGetInternalformati64v__IIIIJ(JNIEnv *__env, jclass clazz, jint target, jint internalformat, jint pname, jint bufSize, jlong paramsAddress) {
    glGetInternalformati64vPROC glGetInternalformati64v = (glGetInternalformati64vPROC)tlsGetFunction(887);
    intptr_t params = (intptr_t)paramsAddress;
    UNUSED_PARAM(clazz)
    glGetInternalformati64v(target, internalformat, pname, bufSize, params);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL43_nglGetInternalformati64v(JNIEnv *env, jclass clazz, jint target, jint internalformat, jint pname, jint bufSize, jlong params, jlong function_pointer) {
	GLint64 *params_address = (GLint64 *)(intptr_t)params;
	glGetInternalformati64vPROC glGetInternalformati64v = (glGetInternalformati64vPROC)((intptr_t)function_pointer);
	glGetInternalformati64v(target, internalformat, pname, bufSize, params_address);
}