public void SetSampler(int textureUnit, OpenGLSamplerState samplerState) { if (_textureUnitSamplers[textureUnit].SamplerState != samplerState) { bool mipmapped = false; OpenGLTextureBinding texBinding = _textureUnitTextures[textureUnit]; if (texBinding != null) { mipmapped = texBinding.BoundTexture.MipLevels > 1; } samplerState.Apply(textureUnit, mipmapped); _textureUnitSamplers[textureUnit] = new BoundSamplerStateInfo(samplerState, mipmapped); } else if (_textureUnitTextures[textureUnit] != null) { EnsureSamplerMipmapState(textureUnit, _textureUnitTextures[textureUnit].BoundTexture.MipLevels > 1); } }
public void SetSampler(uint textureUnit, OpenGLSampler sampler) { if (_textureUnitSamplers[textureUnit].Sampler != sampler) { bool mipmapped = false; OpenGLTextureView texBinding = _textureUnitTextures[textureUnit]; if (texBinding != null) { mipmapped = texBinding.Target.MipLevels > 1; } uint samplerID = mipmapped ? sampler.MipmapSampler : sampler.NoMipmapSampler; glBindSampler(textureUnit, samplerID); CheckLastError(); _textureUnitSamplers[textureUnit] = new BoundSamplerStateInfo(sampler, mipmapped); } else if (_textureUnitTextures[textureUnit] != null) { EnsureSamplerMipmapState(textureUnit, _textureUnitTextures[textureUnit].Target.MipLevels > 1); } }