Hi Phil: At long last I have some preliminary code (commit 635df69) for you to look at that produces (for -DPL_WXWIDGETS_IPC2=ON) good results for one-page plots such as x00c, x01c, and x24c, but which currently has a bug for multipage plots which I am trying to understand.
Sorry this took so long, but I implemented many iterations of this code as I refined my ideas. And my debugging efforts were considerably slowed down by a major g++/gdb issue where the "next" command does not reliably indicate exactly what command it is going to be executing, i.e., it can be a couple of lines off (even for the completely unoptimized case). So for a while there I was trying to figure out why the code was jumping outside loops according to "next" until I finally realized what was going on. The new approach separates the IPC from the assembly of information on the -dev wxwidgets side and the rendering of that data on the wxPLViewer side. It also clearly separates plbuf data from header data and never uses the shared memory space for semi-permanent storage of header information. (Instead, header information is transmitted from dev -wxwidgets to wxPLViewer or vice versa via a specific header location in shared memory and stored in local private variables.) The result is each call to transmitBuffer by -dev wxwidgets sends separate header information and (if needed) plbuf information, while a call to ReadTransmission by wxPLViewer reads all headers and accumulates and plots plbuf information sent by those transmitBuffer calls. In my opinion the result of the above separations is much improved code clarity, and I hope you agree with that assessment. Also, the new code appears to be fast; all the plbuf data was assembled and transferred to wxPLViewer in less than a second for the 10 pages of example 8. I am currently trying to track down a bug (uncaught exception on the wxPLViewer side) that shows up whenever there is an attempt to plot multiple pages. I tried to copy the code stanzas from the old wxplframe.cpp code to the #ifdef PL_WXWIDGETS_IPC2 case for each transmission type, but I may have missed something that is critical to the multipage case. Also for #ifdef PL_WXWIDGETS_IPC2, one call to ReadTransmission reads all pages of plbuf and should plot those pages. That's a big chance in design from ReadTransmission which for the #ifndef PL_WXWIDGETS_IPC2 case reads and plots at most one page. Is there something more I have to do to accomodate that design change so that the multipage case is displayed properly by wxPLViewer when #ifdef PL_WXWIDGETS_IPC? Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel