public void SetSampler(GalImage image, GalTextureSampler sampler) { int wrapS = (int)OglEnumConverter.GetTextureWrapMode(sampler.AddressU); int wrapT = (int)OglEnumConverter.GetTextureWrapMode(sampler.AddressV); int wrapR = (int)OglEnumConverter.GetTextureWrapMode(sampler.AddressP); int minFilter = (int)OglEnumConverter.GetTextureMinFilter(sampler.MinFilter, sampler.MipFilter); int magFilter = (int)OglEnumConverter.GetTextureMagFilter(sampler.MagFilter); TextureTarget target = ImageUtils.GetTextureTarget(image.TextureTarget); GL.TexParameter(target, TextureParameterName.TextureWrapS, wrapS); GL.TexParameter(target, TextureParameterName.TextureWrapT, wrapT); GL.TexParameter(target, TextureParameterName.TextureWrapR, wrapR); GL.TexParameter(target, TextureParameterName.TextureMinFilter, minFilter); GL.TexParameter(target, TextureParameterName.TextureMagFilter, magFilter); float[] color = new float[] { sampler.BorderColor.Red, sampler.BorderColor.Green, sampler.BorderColor.Blue, sampler.BorderColor.Alpha }; GL.TexParameter(target, TextureParameterName.TextureBorderColor, color); if (sampler.DepthCompare) { GL.TexParameter(target, TextureParameterName.TextureCompareMode, (int)All.CompareRToTexture); GL.TexParameter(target, TextureParameterName.TextureCompareFunc, (int)OglEnumConverter.GetDepthCompareFunc(sampler.DepthCompareFunc)); } else { GL.TexParameter(target, TextureParameterName.TextureCompareMode, (int)All.None); GL.TexParameter(target, TextureParameterName.TextureCompareFunc, (int)All.Never); } }