Notes about the predefined gl_texture_formats:
1. There are 1D, 2D and 3D functions for fetching texels from texture images, returning both GLchan values and GLfloat values. (six functions in total) You don't have to provide both the GLchan and GLfloat functions; just one or the other is OK. Mesa will use an "adaptor" to convert between GLchan/GLfloat when needed. Since the adaptors have small performance penalty, we provide both GLchan and GLfloat functions for some common formats like RGB, RGBA.