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

Reply via email to