Projected textures use a Q texture coordinate, along with the S, T, & R coordinates.
Texture projection works similarly to a 3D rendering projection.
A rendering projection takes the (X, Y, Z, W) coordinates of vertices, and converts them into (X, Y) screen positions.
A projection loaded in the GL_TEXTURE matrix can take (S, T, R, Q) texture coordinates and transform them into different (S, T) texture coordinates.
Projecting a texture thus involves 2 major steps:
Example: projector.cpp