Perhaps my post is obvious. Perhaps it’s already in the works.
I think we don’t need to bind to a texture unit to create a texture anymore, right?
The second thing I want is that when you create a texture, you should not be able to upload data in the same function call.
For example :
//Texture created, contents undefined
glCreateTexture2D(textureID, GL_TEXTURE_2D, level, internal, width, height, border);
//User needs to upload bits using another function
//This way, creation and definition are separated.
glTexSubImage2D(textureid, …);
Notice that I don’t need to bind the texture to create it or define the bits.
Also, we should not bind in order to make glTexParameter calls. They should each take a textureID. Perhaps I should call it textureHandle.
The only binding that should happen is for the shaders.
The new object format in openGL 3 will allow you to link textures directly to the sampler uniforms, in fact most things will be done trough shaders so i don’t know if you even can texture stuff without using at least a basic shader in openGL 3.
Anyway, the idea is to remove the concept of imageid(witch is today just an uint) and instead use them as objects.