I tried OpenGL 3.0 today. It’s OK to create a forward-compatible 3.0 context. But problems occurred in some cases(ALL these never happen with OpenGL 2.1):
OGLE: Category: 0x00000001, MessageID: 0x00800001
A provided enum value is not accepted by this operation: OGL Error Code = 0x00000500 (GL_INVALID_ENUM)
2, When I set a sampler value.
int n_txDiffuse = glGetUniformLocation(hProgram, "g_txDiffuse");
glUniform1i(n_txDiffuse, 0);
GLExpert reports:
OGLE: Category: 0x00000001, MessageID: 0x00800003
The current operation is illegal in the current state: OGL Error Code = 0x00000502 (GL_INVALID_OPERATION)
So it’s something to deal with deprecated features. May be, some of formats are deprecated, I can’t say more precise, sorry, cause I didn’t look deeply in new specification.