The OpenGL C function glTexImage2D has the following signature: void glTexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * data); However, the corresponding Context.TexImage2D method in package gl does not include the internalFormat parameter, and use the format argument instead. That's ok for many texture formats; for example, RGBA textures have both format and internalFormat set to GL_RGBA. But not always. In particular, OpenGL ES 3 allows the use of sRGB encoded textures by specifying GL_SRGB8_ALPHA8 as internalFormat, but keeping GL_RGBA as format. Add the internalFormat to the Context package. This is unfortunately a breaking change, but adding a new function ("glTexImage2D2"?) to Context is too ugly for a parameter that should have been there all along. (Adding a new method to the Context interface is technically also a breaking change, but I don't expect that there are any external implementers of the interface). Change-Id: I12a45a34f604e51cb1be26aed906025ccfac533a Reviewed-on: https://go-review.googlesource.com/133155 Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
golang.org/x/mobile/exp contains experimental packages for mobile app development.