I'm writing a program using Gtk and GtkGLExt. I have a drawing area which is using OpenGL to display a scene. I receive mouse motion events to rotate, translate, zoom, on this scene. In the display window, I would also like to draw some primitives on top of the scene rendered by OpenGL. For example, I would like to draw a small coordinate axis in one corner of the window that is oriented in the same manner as the scene. (While this particular example might be done via OpenGL, I believe a lot of extra work would need to be done to keep in in a particular location on the screen as and a consistent size as rotation, zooming, and panning are performed. Knowing the current orientation and view location, I can calculate the appropriate transform and draw three lines of different colors.)
At the moment, I'm just drawing some lines on the screen using gdk_draw_lines in the Expose event callback function which is responsible for redrawing the OpenGL scene. I've tried placing the gdk_draw_lines before and after swapping the front and back buffers. I see the lines, but they flicker (when mouse dragging is used to orient, zoom, pan the scene) and typically do not show up in the last update when the mouse stops moving. The coordinate axes are not the only thing I wish to draw, I may also wish to draw other lines, circles, etc. So in general my question is what is the proper way of performing 2D drawing (which may not have anything to do with the underlying 3D OpenGL scene) on top of an OpenGL drawing area and have it show up with out flicker. _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list