Mam taką teksturę (do testów):
A w OpenGL dostaję tą teksturę jakoś zdeformowaną:
Da się tam zauważyć jakiś wzór, jakby był on wczytywany jakoś na odwrót, ale sprawdziłem tablicę pikseli którą wczytuję z tekstury i jest ona dobrze.
Kod:
Handle = GL.GenTexture();
GL.BindTexture(TextureTarget.Texture2D, Handle);
Image<Rgba32> image = Image.Load(File.ReadAllBytes(path));
image.Mutate(x => x.Flip(FlipMode.Vertical));
List<byte> pixels = new List<byte>(4 * image.Width * image.Height);
for (int y = 0; y < image.Height; y++)
{
var row = image.GetPixelRowSpan(y);
for (int x = 0; x < image.Width; x++)
{
pixels.Add(row[x].R);
pixels.Add(row[x].G);
pixels.Add(row[x].B);
pixels.Add(row[x].A);
}
}
// lista pixels jest ok
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.Repeat);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.Repeat);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Nearest);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Nearest);
GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, image.Width, image.Height, 0, PixelFormat.Rgba,
PixelType.UnsignedByte, pixels.ToArray());
GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);