Texture behaviour on OpenGL

I would like to find any explanation or reference (even better) to the behaviour of a texture loaded. I mean, what happen with the texture when you use the different OpenGL commands…

glBindTexture -> ¿Texture is sent to the RAM?

glTexImage2D -> ¿Texture is sent to the graphic card?

Really, I dont see very well when textures are in RAM or in the memory of the graphic card.


glTexImage2D uploads image-data for the currently-bound texture. The driver decides when/whether to upload the texture to VRAM. In most implementations, the texture is sent to VRAM the first time it’s used to really draw stuff onscreen.

OpenGL always maintains a copy of all textures in Sys-RAM. When you change resolutions, videocards always reboot themselves - and reset their VRAM. OpenGL will automatically restore the necessary textures in VRAM.