Creating textures in GL 3

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.

read the files on this page.
SIGGRAPH 2006 - OpenGL BOF presentations
Specifically the one named
NVIDIA_-_New_Object_Model.ppt

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.

like this

 GLattribute attrib = glCreateAttrib(GL_IMAGE_OBJECT);
glSetAttribo(attrib, GL_FORMAT, format);
glSetAttribi(attrib, GL_WIDTH,  width);
glSetAttribi(attrib, GL_HEIGHT, height);
glSetAttribi(attrib, GL_LEVELS, levels);
GLimage image = glCreateImage(attrib);
glDestroyObject(attrib); 

or the quick way

 GLimage image = gluCreateImage2D(format, width, height, levels); 

So any operation that uses textures can be called any where you want(mostly) without requiring you to bind it previously.

image = glTexSubImage2D(image2 ...);
and maybe even
image += image2;

or something like this, though i am a bit fuzzy on the details myself.

Oh, looks like they want to move the glTexParameter stuff into a sampler object.
The rest is good.