While working on my old Windows GDI based driver (see attached patches), I 
stumbled across the problem that prompted Phil to add plP_eop() in 
plRemakePlot(). This is related to the issue that Andrew raised on 3/29 on 
problems with -np when running automated testing.

In plbuf.c, the EOP is never inserted into the plot buffer while the plot is 
being generated.  The obvious issue to having an EOP in the plot buffer is that 
it would trigger the device EOP handler (e.g. plD_eop_xw) and in a GUI driver 
that could cause problems (i.e. the WaitForPage() in the xwin driver would be 
called multiple times). While working on wxwidgets, Phil added a call to 
plP_eop() in the plRemakePlot() function in plbuf.c, which triggers the EOP 
handler and results in the need for a keypress.  I thought eliminating the call 
to plP_eop() would be the simple fix (it does fix the bug) but having the EOP 
is handy when redrawing the plot.

I looked at the possibility of keeping the EOP in the plot buffer, but there is 
all sorts of messy code on trying to “do the right thing” that I think might 
cause more problems.  In the ideal world, I like the symmetry of having both a 
BOP and EOP in the plot buffer.  However, to support that correctly in the GUI 
drivers might be tricky.  Instead, I think the best solution is to eliminate 
the plP_eop() call that was added into plRemakePlot. That will fix the issue 
that Andrew raised.  The downside is that Phil might need to make some changes 
to wxwidgets.  It took some effort to get the new windows GDI driver working 
without the plP_eop() call, but it does work.  I can make a fix for plbuf.c 
that removes the plP_eop().

@Aaron & Alan (and others who might be interested)
I have attached two sets of patches.  One fixes some build problems I was 
having with MSVC and the second implements the new windows GDI driver (which is 
mostly done).  I need to add some features that I had in my old driver 
(coordinate point picking, optional tab interface, saving plots into files, 
optional menu bar).  Should I add Freetype back in?

Once I finish with wingdi, I will implement the Direct2D version.


@Alan

I was not able to uncrustify.  I have not had time to set it up on my Windows 
machine.  Sorry.


Attachment: 0001-Fixes-to-correct-builds-on-WIN32.patch
Description: Binary data

Attachment: 0002-Implement-a-new-Windows-GDI-wingdi-driver.patch
Description: Binary data



------------------------------------------------------------------------------
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to