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.
0001-Fixes-to-correct-builds-on-WIN32.patch
Description: Binary data
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