Hi,
I have some Windows 7 code that works under ATI’s Catalyst 11.8 but does not under 11.12 or 11.11: I have not tried 11.9 or 11.10.
void SimpleTriangle::setupVBOs()
{
float positionData[] =
{
-0.8f, -0.8f, 0.0f,
0.8f, -0.8f, 0.0f,
0.0f, 0.8f, 0.0f
};
float colorData[] =
{
1.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 1.0f
};
GLubyte indices[] =
{
0, 1, 2
};
GLenum err(glGetError());
// Create and populate the buffer objects
enum { VERTICES, COLORS, INDICES, NUM_VBOS };
GLuint vboHandles[NUM_VBOS];
m_glex->glGenBuffers(NUM_VBOS, vboHandles);
m_glex->glBindBuffer(GL_ARRAY_BUFFER, vboHandles[VERTICES]);
m_glex->glBufferData(GL_ARRAY_BUFFER, sizeof(positionData), positionData, GL_STATIC_DRAW);
m_glex->glBindBuffer(GL_ARRAY_BUFFER, vboHandles[COLORS]);
m_glex->glBufferData(GL_ARRAY_BUFFER, sizeof(colorData), colorData, GL_STATIC_DRAW);
m_glex->glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vboHandles[INDICES]);
m_glex->glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
// Create and set-up the vertex array object
m_glex->glGenVertexArrays( 1, &m_VAO );
m_glex->glBindVertexArray(m_VAO);
m_glex->glEnableVertexAttribArray(0); // Vertex position
m_glex->glEnableVertexAttribArray(1); // Vertex color
m_glex->glBindBuffer(GL_ARRAY_BUFFER, vboHandles[VERTICES]);
m_glex->glVertexAttribPointer( 0, 3, GL_FLOAT, GL_FALSE, 0, (GLubyte *)NULL );
m_glex->glBindBuffer(GL_ARRAY_BUFFER, vboHandles[COLORS]);
m_glex->glVertexAttribPointer( 1, 3, GL_FLOAT, GL_FALSE, 0, (GLubyte *)NULL );
m_glex->glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vboHandles[INDICES]);
err = glGetError();
}
and
void SimpleTriangle::render()
{
float mvpMatrix[16];
GetOGLFixedFunctionMVPMatrix(mvpMatrix);
GLenum err(glGetError());
m_shaderPrograms[0]->use();
m_shaderPrograms[0]->sendUniform("MVPMatrix", mvpMatrix);
m_glex->glBindVertexArray(m_VAO);
glDrawElements(GL_TRIANGLE_STRIP, 3, GL_UNSIGNED_BYTE, 0);
m_glex->glUseProgram(0);
err = glGetError();
}
No gl errors are found when run under Catalyst 11.12. Just a window of background colour. Immediate mode works just as usual - OK.
Am I doing something wrong for 11.12? Is it a question of 11.12 being more rigorous to the OpenGL specs? Or can it be the 11.12 is itself in error?
Thanks
Sam