1. If you have two types with functions inside, and two of the functions have the same name, ctrl+g does not work properly. It always jumps to one function of one type, no matter which one is correct in this case.
2. X_SCALING a 3D object also scales its normals, so lighting is incorrect. Could be fixed if you manually normalize the normals, or simply add glEnable(GL_NORMALIZE).
3. X_Ambient is no real ambient, just a fake, using a spot light. Please use glLightModelfv(GL_LIGHT_MODEL_AMBIENT, v) instead (in this case we wont need an id for ambient light any more). Also see this
thread and my
light fixes.
-----
[very old problems, I dont add this to the list at 1st post:]
4. X_FOG has no effect on shadows, so even if your object is not visible and dont get hard clipped, your shadows are visible and get hard clipped.
5. No bump mapping on Intel graphics (I guess missing extension?).
6. cuttoff is ignored for shadows/ X_SPOT_LT -3.