Some older graphics cards/drivers don't work properly with textures whose dimensions are not a power of 2.
In your case, you're creating a 1d texture of width 5, which isn't a power of two. So the solution is to pad your texture out to the nearest power of two (8) before calling glTexImage1D
.
byte[,] Texture8 = new byte[,]
{
{ 000, 000, 255 },
{ 000, 255, 255 },
{ 000, 255, 000 },
{ 255, 255, 000 },
{ 255, 000, 000 },
{ 000, 000, 000 },
{ 000, 000, 000 },
{ 000, 000, 000 }
};
// ...
GL.TexImage1D(TextureTarget.Texture1D, 0,
PixelInternalFormat.Three, /*with*/8, 0,
PixelFormat.Rgb,
PixelType.UnsignedByte, Texture8);