From: Thomas C. <tho...@gm...> - 2008-05-02 13:53:50
|
Hi all, I have an application which is using one single VBO for several objects. Its rendering loop looks like: (don't have the source of the app, got that from the print SPU) BindBufferARB( GL_ARRAY_BUFFER, 1 ) BindBufferARB( GL_ELEMENT_ARRAY_BUFFER, 2 ) VertexPointer( 3, GL_FLOAT, 32, 00000000 ) DrawElements... ... VertexPointer( 3, GL_FLOAT, 32, 00000FA0 ) DrawElements... ... VertexPointer( 3, GL_FLOAT, 32, 000113C0 ) DrawElements... but on th crserver, the print SPU gives something like: BindBufferARB( GL_ARRAY_BUFFER, 1 ) BindBufferARB( GL_ELEMENT_ARRAY_BUFFER, 2 ) VertexPointer( 3, GL_FLOAT, 32, 00000000 ) DrawElements... ... DrawElements... ... DrawElements... And the visual result is wrong. I looked a bit in chromium sources, and it came down to the crStateClientDiff function in state_client.c. The two CRClientState pointers "to" and "from" where the same, so the tests on change of size, type etc never passed. I just commented these tests and now the app works nicely, but maybe it breaks something else somewhere! Regards, Thomas |