From: Alan W. I. <ir...@be...> - 2002-07-03 19:36:23
|
Vince, your instincts were completely right, but I don't see how you got the correct solution from the documentation which is somewhat ambiguous....;-) I looked at the code and also did some experiments with the python front end which has exactly the same cross-talk problem. Ordinarily, plssub is called before plinit (see plstart, etc.) But sometimes it must be called afterward as in the present situation for the first and second examples (whether tcl or python). In the old days, plssub called plP_eop() and then plP_bop which generated empty pages for some drivers before I commented out those calls. plP_subpInit (called both by plssub and plinit) sets cursub to 0. So when the first or second examples are executed in isolation without the initial pladv(0) before plssub(2,2) everything is fine. However, if these examples are called after another example as occurs both for the python and tcl demos, then you have to finish the last page of the previous example by a call to pladv(0). This required extra pladv(0) (for both the first and second examples in python and tcl) does not generate an extra blank page if the examples are run in isolation (or first) because of special logic already in place in pladv. Thus, your fix was correct so I have reinstated that as well as the same fix for the first python example. As you state, the extra pladv(0) is already in the second (tcl and python) example, but I also put some commentary in there as to why. Thanks for drawing my attention to this problem. Alan email: ir...@be... phone: 250-727-2902 FAX: 250-721-7715 snail-mail: Dr. Alan W. Irwin Department of Physics and Astronomy, University of Victoria, P.O. Box 3055, Victoria, British Columbia, Canada, V8W 3P6 __________________________ Linux-powered astrophysics __________________________ On Wed, 3 Jul 2002, Vince Darley wrote: > My reading of the manual is that you _do_ need a pladv before plssub > because there is no plenv. The plenv after plssub refers to the subpage > set up by plssub and is therefore (I would argue, but this may be > nonsense!) nothing to do with the 'plenv' that the man page says you need. > > but this could be completely wrong ;-) > > -- Vince > > <http://www.santafe.edu/~vince> > > > On Wed, 3 Jul 2002, Alan W. Irwin wrote: > > > Thanks for drawing that problem to my attention. I confirm it here as well > > with the sequence of commands: > > > > pltcl -dev xwin > > plinit > > source tcldemos.tcl > > 2 > > 1 > > > > However, inserting an extra pladv is only a superficial fix that will cause > > problems elsewhere (IMO) because in fact x01.tcl does call pladv already (in > > plot1 and plot2 indirectly via plenv and directly in plot3). > > > > I have now narrowed the problem down to plssub. If you comment that out > > the overwriting problem disappears. So perhaps there is a deeper lying > > bug in plssub that should be addressed. > > > > I will look deeper into this. > > > > Alan > > > > email: ir...@be... > > phone: 250-727-2902 FAX: 250-721-7715 > > snail-mail: > > Dr. Alan W. Irwin > > Department of Physics and Astronomy, > > University of Victoria, P.O. Box 3055, > > Victoria, British Columbia, Canada, V8W 3P6 > > __________________________ > > > > Linux-powered astrophysics > > __________________________ > > > > On Wed, 3 Jul 2002, Vince Darley wrote: > > > > > The first tcl demo, 'x01.tcl' has a problem if it is called after drawing > > > a previous demo --- the four plots overwrite whatever was previously drawn > > > rather than clearing the plot page first. > > > > > > My reading of the manual: > > > > > > Advances to the next subpage if sub=0, performing a page advance if there > > > are no remaining subpages on the current page. If subwindowing isn't being > > > used, pladv(0) will always advance the page. If sub>0, PLplot switches to > > > the specified subpage. Note that this allows you to overwrite a plot on > > > the specified subpage; if this is not what you intended, use pleop > > > followed by plbop to first advance the page. This routine is called > > > automatically (with sub=0) by plenv, but if plenv is not used, pladv must > > > be called after initializing PLplot but before defining the viewport. > > > > > > suggests that '$w cmd pladv 0' (as used in x02.tcl, in fact) is the right > > > fix to this problem. (Since x01.tcl doesn't use plenv, "pladv must be > > > called..."). > > > > > > Is this right? > > > > > > -- Vince > > > > > > <http://www.santafe.edu/~vince> > > > > > > > > > > > > > > > > > > ------------------------------------------------------- > > > This sf.net email is sponsored by:ThinkGeek > > > No, I will not fix your computer. > > > http://thinkgeek.com/sf > > > _______________________________________________ > > > Plplot-devel mailing list > > > Plp...@li... > > > https://lists.sourceforge.net/lists/listinfo/plplot-devel > > > > > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > No, I will not fix your computer. > http://thinkgeek.com/sf > _______________________________________________ > Plplot-devel mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-devel > |