Texture coordinate displacement maps in legacy GL

I was watching a video on the graphics of Super Mario Galaxy 2. Essentially, the beauty of the game comes from smart use of the Wii’s texture combining hardware. In particular, using them while scrolling some of the layers. With that, they were able to produce some very mesmerizing water graphics.

One of the tricks was to use a scrolling texture as a “displacement map”, to produce a refraction effect that comes in waves. The video explains it in layman’s terms (~4:08), but from what I can see, a texel would determine how much to offset the texture coordinates that were to be used next. According to the video, said functionality would be pretty basic - it could only shift to the top-left or bottom-right, but one can imagine a version where offsets can cross the image borders, allowing for more possibilities.

Does the glTexEnv API have anything of the sort? If not, does any extension? I was curious enough to look for it, but couldn’t find anything. It would be a shame to use shaders for something that might be possible without them.

glTexEnv can’t affect texture coordinates. The only way to modify texture coordinates per-fragment is to use a fragment shader.