Fragment programs replace the part of the pipeline which accesses textures and does calculations on them until the final fragment color is written.
There is even no need to enable texture units with fragment programs because they don’t use texture units, but texture image units and there are more of the latter.
We still need to bind textures to Texture Image Units. So once we enable fragment programs, any calls to glActiveTextureARB() actually refers to Texture Image Units. Is that correct ?
Also do I need to specify and enable each texture Coordinate set that I will be using inside the fragment program ?