From: Daniel E. S. <dan...@gm...> - 2006-09-22 20:29:36
|
I have tracked the problem down farther. When I use buGLe to look at the GL stream coming from my custom server application I don't actually see any of the GL calls that are being made over the wire... I had some other GL calls for drawing other things that confused me and I thought those were the application's GL stream. Any ideas on how to capture all GL calls from the custom server that mixes GL calls from the server program and those that are coming off the wire as well? -Dan On 9/22/06, Daniel E. Shipton <dan...@gm...> wrote: > > Hello all, > > I have an application that is processing the crServer loop by hand. It > looks like so... > NOTE: has_swapped gets set to 1 when glXSwapBuffers is seen within the > stream. > also, the glEnables are to explain my example > > // Draw graphics off the GL stream > glPushMatrix(); > glEnable(GL_LIGHTING); > glEnable(GL_LIGHTING); > glEnable(GL_LIGHTING); > while (cr_server.has_swapped != 1) > { > if(cr_server.run_queue != NULL) > { > crServerServiceClients(); > } > } > cr_server.has_swapped = 0; > glDisable(GL_LIGHTING); > glDisable(GL_LIGHTING); > glDisable(GL_LIGHTING); > glPopMatrix(); > > When the code is compiled and ran the buGLe log shows: > > trace.call: glPushMatrix() > trace.call: glEnable(GL_LIGHTING) > trace.call: glEnable(GL_LIGHTING) > trace.call: glEnable(GL_LIGHTING) <-- Over the wire drawing should > begin here. > trace.call: glDisable(GL_LIGHTING) > trace.call: glDisable(GL_LIGHTING) > trace.call: glDisable(GL_LIGHTING) > trace.call: glPopMatrix() > trace.call: glPushAttrib(GL_ALL_ATTRIB_BITS) <-- but begins here... > trace.call: glGetBooleanv(GL_LIGHTING, 0x43c06bbb -> GL_FALSE) > trace.call: glGetBooleanv(GL_LIGHT0, 0x43c06bba -> GL_TRUE) > trace.call: glMaterialfv(GL_FRONT, GL_AMBIENT, 0x43c06ba0 -> { 0.1, 0.1, > 0.1, 1 }) > trace.call: glMaterialfv(GL_FRONT, GL_SHININESS, 0x43c06b90 -> 50) > trace.call: glMaterialfv(GL_FRONT, GL_SPECULAR, 0x43c06b70 -> { 1, 1, 1, 1 > }) > trace.call: glMaterialfv(GL_FRONT, GL_DIFFUSE, 0x43c06b80 -> { 0.7, 0.7, > 0.7, 1 }) > trace.call: glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE) > trace.call: glEnable(GL_COLOR_MATERIAL) > trace.call: glDisable(GL_TEXTURE_2D) > trace.call: glDisable(GL_TEXTURE_1D) > trace.call: glPushMatrix() > trace.call: glLoadIdentity() > trace.call: glBegin(GL_LINES) > trace.call: glColor3f(1, 0, 0) > trace.call: glVertex3fv(0x43c06b30 -> { 0, 0, 0 }) > trace.call: glVertex3fv(0x43c06b60 -> { 3.28, 0, 0 }) > trace.call: glColor3f(0, 1, 0) > trace.call: glVertex3fv(0x43c06b30 -> { 0, 0, 0 }) > ..... > > I tried calling getNextClient with GL_TRUE (block)...but it had no effect. > > > So my question is how to make sure that the stream has been deserialized > into GL calls before I can continue making GL calls? > > -Dan > > |