The side of the cylinder form a square or a rectangle ( this depend of the height/circonference ratio) when you unwrap it. The formula for the u coordinate can be something like this : u = angle/(2*PI) (angle is in radian). For the v coordinate, use v = y/(height of cylinder) for a y axis cylinder => TexCoord2f(u,v). But keep in mind that the texture on the cylinder may appear stretched vertically if the cylinder is tall (ratio of height/circonference > 1), or appear stretched horizontally if the cylinder is small(ratio of height/circonference < 1). So if the ratio of height/circonference != 1, you have two choices, use a rectangle texture if your graphic card support it that meet the ratio above, or use a square texture with coordinates range that meet the ratio (v/u = height/circonference), some part of the square texture are empty. I don’t know if there exist some routine in OpenGL or GLU that can scale a texture.