2D Texture differences - jeske/opentk GitHub Wiki

The most commonly used textures are 2-dimensional. There exist 3 kinds of 2D textures:

== Texture2D Power of two sized (POTS) E.g: 1024² These are supported on all OpenGL 1.2 drivers.

  • MipMaps are allowed.
  • All filter modes are allowed.
  • Texture Coordinates are addressed parametrically: [0.0f]x[0.0f]
  • All wrap modes are allowed.
  • Borders are supported. (Exception: S3TC Texture Compression does not allow borders)
== Texture2D Non power of two sized (NPOTS) E.g: 640*480. GL.SupportsExtension( "ARB_texture_non_power_of_two" ) must evaluate to true.
  • MipMaps are allowed.
  • All filter modes are allowed.
  • Texture Coordinates are addressed parametrically: [0.0f]x[0.0f]
  • All wrap modes are allowed.
  • Borders are supported. (Exception: S3TC Texture Compression does not allow borders)
== TextureRectangle Arbitrary size. E.g: 640*480. GL.SupportsExtension( "ARB_texture_rectangle" ) must evaluate to true.
  • MipMaps are not allowed.
  • Only Nearest and Linear filter modes are allowed. (default is Linear)
  • Texture Coordinates are addressed non-parametrically: [0..width]x[0..height]
  • Only Clamp and ClampToEdge wrap modes are allowed. (default is ClampToEdge)
  • Borders are not supported.
Note that 1 and 2 both use the same tokens. The only difference between them is the size.
⚠️ **GitHub.com Fallback** ⚠️