+typedef std::unique_ptr<GLuint, TextureDeleter> UniqueTexture;
+typedef std::shared_ptr<GLuint> RefCountedTexture;
+
+// TODO: consider mipmaps.
+RefCountedTexture create_texture_2d(GLuint width, GLuint height, GLenum internal_format, GLenum format, GLenum type, const GLvoid *pixels);