JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL33_nglSamplerParameteriv(JNIEnv *__env, jclass clazz, jint sampler, jint pname, jlong paramsAddress, jlong __functionAddress) {
	const GLint *params = (const GLint *)(intptr_t)paramsAddress;
	glSamplerParameterivPROC glSamplerParameteriv = (glSamplerParameterivPROC)(intptr_t)__functionAddress;
	UNUSED_PARAMS(__env, clazz)
	glSamplerParameteriv(sampler, pname, params);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_ARBSamplerObjects_nglSamplerParameteriv__IIJ(JNIEnv *__env, jclass clazz, jint sampler, jint pname, jlong paramsAddress) {
    glSamplerParameterivPROC glSamplerParameteriv = (glSamplerParameterivPROC)tlsGetFunction(674);
    intptr_t params = (intptr_t)paramsAddress;
    UNUSED_PARAM(clazz)
    glSamplerParameteriv(sampler, pname, params);
}
Esempio n. 3
0
 void parameter(GLenum pname, GLint* param)
 {
   glSamplerParameteriv(m_sampler, pname, param);
 }
Esempio n. 4
0
void fhSampler::Init() {
	if(num <= 0) {
		glGenSamplers( 1, &num );
	}

	switch (filter) {
	case TF_DEFAULT:
		glSamplerParameteri( num, GL_TEXTURE_MIN_FILTER, globalImages->textureMinFilter );
		glSamplerParameteri( num, GL_TEXTURE_MAG_FILTER, globalImages->textureMaxFilter );
		break;
	case TF_LINEAR:
		glSamplerParameteri( num, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
		glSamplerParameteri( num, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
		break;
	case TF_NEAREST:
		glSamplerParameteri( num, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
		glSamplerParameteri( num, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
		break;
	default:
		common->FatalError( "fhSampler: bad texture filter" );
	}

	switch (repeat) {
	case TR_REPEAT:
		glSamplerParameteri( num, GL_TEXTURE_WRAP_S, GL_REPEAT );
		glSamplerParameteri( num, GL_TEXTURE_WRAP_T, GL_REPEAT );
		break;
	case TR_CLAMP_TO_BORDER:
		glSamplerParameteri( num, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER );
		glSamplerParameteri( num, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER );
		break;
	case TR_CLAMP_TO_ZERO:
	case TR_CLAMP_TO_ZERO_ALPHA:
	case TR_CLAMP:
		glSamplerParameteri( num, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
		glSamplerParameteri( num, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
		break;
	default:
		common->FatalError( "fhSampler: bad texture repeat" );
	}
		
	static const GLint const swizzle_AGBR[] = { GL_ALPHA, GL_GREEN, GL_BLUE, GL_RED };

	switch (swizzle) {
	case textureSwizzle_t::AGBR:		
		glSamplerParameteriv( GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzle_AGBR );
		break;
	case textureSwizzle_t::None:
		//do nothing
		break;
	default:
		common->FatalError( "fhSampler: bad texture swizzle" );
	}	

	if (glConfig.anisotropicAvailable) {
		// only do aniso filtering on mip mapped images
		if (filter == TF_DEFAULT && useAf) {
			glSamplerParameterf( num, GL_TEXTURE_MAX_ANISOTROPY_EXT, globalImages->textureAnisotropy );
		}
		else {
			glSamplerParameterf( num, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1 );;
		}
	}

	if(useLodBias) {
		glSamplerParameterf( num, GL_TEXTURE_LOD_BIAS, globalImages->textureLODBias );
	} else {
		glSamplerParameterf( num, GL_TEXTURE_LOD_BIAS, 0 );
	}
}