public unsafe void AddTextureMap(byte[] data, int imageCount) { uint h; gl.GenTextures(1, &h); texture = h; gl.ActiveTexture(TextureUnit.Texture0); gl.BindTexture(TextureTarget.Texture2d, texture); var textureFormat = TexturePixelFormat.Rgb8; var format = PixelFormat.Rgb; fixed(byte *p = data) { gl.TexImage2D(TextureTarget2D.Texture2d, 0, textureFormat, 16, 16 * imageCount, 0, format, PixelType.UnsignedByte, new IntPtr(p)); } gl.TexParameteri(TextureTarget.Texture2d, TextureParameteri.TextureWrapS, (int)TextureParameterValue.ClampToEdge); gl.TexParameteri(TextureTarget.Texture2d, TextureParameteri.TextureWrapT, (int)TextureParameterValue.ClampToEdge); gl.TexParameteri(TextureTarget.Texture2d, TextureParameteri.TextureMinFilter, (int)TextureParameterValue.Nearest); gl.TexParameteri(TextureTarget.Texture2d, TextureParameteri.TextureMagFilter, (int)TextureParameterValue.Nearest); }