yet again many wasted hours trying to figure out why a simple demo works fine and the same code wont work for me.
the problem: point sprites refused to be sprites and instead remained a solid color picked from a corner of the texture. so it seems that texture coordinate replacement was simply not working. after a long time i wanted to try it with va instead of vbo, with the result of it freezing for a few seconds, followed by my monitor telling me about a lost signal. ups, guess it didnt like the color pointer with a value of 12 (one would expect a simple access violation). fixing that didnt really help and caused the same problem, which i didnt bother to track down further because rebooting after every test run is kind of time consuming.
anyway, using good old begin/end with gl_points resulted in the point sprites being displayed correctly.
using a radeon 9800 with cat 4.2
part of the code (without most of the point stuff, as its working in immediate mode that part is correct):
glTexEnvf(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, 1);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, VBuffer);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glVertexPointer(3, GL_FLOAT, sizeof(Particle), 0);
glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(Particle), (void*)12);glDrawArrays(GL_POINTS, 0, numParticles);
the va version looked something like this (with particle being 3 floats + 4 bytes)
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glVertexPointer(3, GL_FLOAT, sizeof(Particle), Particles);
unsigned char* PartCol=(unsigned char*)Particles;
PartCol+=12;
glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(Particle), PartCol);
that version as mentioned caused the program to freeze and a signal lost after a few seconds requiring a reboot (the usual alt+tab, shift+f5 combination didnt work)
can anyone confirm that point sprites are not working with vbo on ati cards? and if so, is ANYTHING working with vbo on ati cards, because i get the feeling that when it comes to vbo ati is screwing up at every possible opportunity. especially embarassing as it seems that the arb went more with their vao version rather than nvidias var.