From: Alan W. I. <ir...@be...> - 2009-04-20 20:11:53
|
I have just committed (revision 9825) my work integrating into our installed examples build and test some examples demonstrating how to use the PLplot xcairo and extcairo devices to draw into an externally supplied XDrawable or Cairo context. To build these examples in the installed tree, simply cd to the installed examples/c directory (currently $prefix/share/plplot5.9.2/examples/c, where $prefix is your installation prefix) and run 'make extXdrawable_demo ext-cairo-test'. To run these examples simply execute './extXdrawable_demo' or ./ext-cairo-test'. You can also build and run these examples as part of the series of our interactive tests by 'cd $prefix/share/plplot5.9.2/examples; make test_interactive'. extXdrawable_demo.c was donated a year ago by Jonathan Woithe. He kindly agreed recently to relicense this code to LGPL to be consistent with the rest of our licensing. ./extXdrawable_demo builds and works without issues, but a plot consisting of just 3 points is less than exciting so I hope somebody volunteers to beef this up into a more interesting example which will exercise more of the plotting capabilities of PLplot. This upgrade of the example is obviously not release critical, but it would be nice to have this before we release (possibly as early as two weekends from now). ext-cairo-test.c was written by Hazen a year ago. It builds without issues, but it also demonstrates there is an important bug with the extcairo device. No text appears in the test.ps result, and there is a status code of 127 returned by ext-cairo-test. Hazen, the bugfix is not release critical because extcairo is turned off by default, but if you find the fix before the release, you should also turn on extcairo by default. Also, once the fix has been implemented an upgraded demo using a lot more of the plotting capabilities of PLplot would be nice. 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); PLplot scientific plotting software package (plplot.org); 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 __________________________ |
From: Hezekiah M. C. <hc...@at...> - 2009-04-23 19:00:46
Attachments:
extcairo-text-fix.patch
|
On Mon, Apr 20, 2009 at 4:11 PM, Alan W. Irwin <ir...@be...> wrote: > ext-cairo-test.c was written by Hazen a year ago. It builds without issues, > but it also demonstrates there is an important bug with the extcairo device. > No text appears in the test.ps result, and there is a status code of 127 > returned by ext-cairo-test. Hazen, the bugfix is not release critical > because extcairo is turned off by default, but if you find the fix before > the release, you should also turn on extcairo by default. Also, once the fix > has been implemented an upgraded demo using a lot more of the plotting > capabilities of PLplot would be nice. The attached patch should fix the extcairo text rendering bug. The issue is/was that there was some extcairo-specific code which had not been updated for the next text rendering system. With this patch the extcairo driver now falls back on the plD_esc_cairo for any non-extcairo specific cases, similar to what is done for the xcairo driver. If this works for others as well I would be quite happy to see the extcairo driver turned on by default. I have found it quite useful in my own projects. Hez -- Hezekiah M. Carty Graduate Research Assistant University of Maryland Department of Atmospheric and Oceanic Science |
From: Alan W. I. <ir...@be...> - 2009-04-23 20:41:54
|
On 2009-04-23 14:28-0400 Hezekiah M. Carty wrote: > On Mon, Apr 20, 2009 at 4:11 PM, Alan W. Irwin > <ir...@be...> wrote: >> ext-cairo-test.c was written by Hazen a year ago. It builds without issues, >> but it also demonstrates there is an important bug with the extcairo device. >> No text appears in the test.ps result, and there is a status code of 127 >> returned by ext-cairo-test. Hazen, the bugfix is not release critical >> because extcairo is turned off by default, but if you find the fix before >> the release, you should also turn on extcairo by default. Also, once the fix >> has been implemented an upgraded demo using a lot more of the plotting >> capabilities of PLplot would be nice. > > The attached patch should fix the extcairo text rendering bug. The > issue is/was that there was some extcairo-specific code which had not > been updated for the next text rendering system. With this patch the > extcairo driver now falls back on the plD_esc_cairo for any > non-extcairo specific cases, similar to what is done for the xcairo > driver. > > If this works for others as well I would be quite happy to see the > extcairo driver turned on by default. I have found it quite useful in > my own projects. Thanks, Hez, for the fix which works here as well. I have committed your change and also turned on extcairo by default (revision 9835). 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); PLplot scientific plotting software package (plplot.org); 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 __________________________ |
From: Jonathan W. <jw...@ph...> - 2009-04-20 23:16:25
|
Hi > extXdrawable_demo.c was donated a year ago by Jonathan Woithe. He kindly > agreed recently to relicense this code to LGPL to be consistent with the > rest of our licensing. ./extXdrawable_demo builds and works without issues, > but a plot consisting of just 3 points is less than exciting so I hope > somebody volunteers to beef this up into a more interesting example which > will exercise more of the plotting capabilities of PLplot. This upgrade > of the example is obviously not release critical, but it would be nice > to have this before we release (possibly as early as two weekends from now). I don't have time to "beef up" the example in this time frame, so if someone else wants to feel free. At the end of the day I wrote the example not to show off plplot but to clearly illustrate how to use the "external drawable" functionality. My personal thought is that it might be better to leave the extXdrawable_demo (and ext-cairo-test.c) more or less as they are - very simple demonstrations of the feature they set out to show. Sure, the plot can be made more spectacular, but then the code which produces this ends up dwarfing the code which is being demonstrated (namely, the external xdrawable and cairo surface features). For someone who just wants to see how to use these specific features, they then need to trawl through all this extra generic plplot code to get to the stuff they want (assuming that they don't completely overlook the bits they need). There are many other examples and demos in the plplot distribution which show off plplot in all its glory. Do we really need to complicate these "output driver" demos with code which essentially duplicates what's already in other examples? To me, these driver demos exist to show what driver options are available and how to use them. The other examples show what plplot can do in terms of plotting. Since plplot is mostly driver independent, I really can't see why it is necessary to "prove" that the stuff seen in the demos can also be done in extcairo/extXdrawable - that will be assumed. Anyway, this is just my personal opinion. If the majority think otherwise then I'm certainly not fussed. Regards jonathan |
From: Alan W. I. <ir...@be...> - 2009-04-21 00:26:37
|
On 2009-04-21 08:46+0930 Jonathan Woithe wrote: > There are many other examples and demos in the plplot distribution which > show off plplot in all its glory. Do we really need to complicate these > "output driver" demos with code which essentially duplicates what's already > in other examples? One purpose of the examples is to test PLplot capabilities. I am concerned that extXdrawable_demo.c only exercises 7 PLplot commands (counting plsdev, plsetopt, plinit, and plend) so there might be hidden issues in the way this output driver is implemented which are not encountered because PLplot capabilities are exercised so little. The current extXdrawable_demo.c does exercise some 2D PLplot capability and also some limited 2D PLplot text capability. So at least we know those capabilites work. However, I would like to see it test more PLplot capabilities to increase the testing power of this external X drawable demo. I acknowledge I am paranoid about testing, but that paranoia got an energy boost today when I noticed the missing text in the ext-cairo-test results. :-) Whoever volunteers to enhance extXdrawable_demo.c (assuming we get such a volunteer) might as well make the result interesting looking as well to serve yet another purpose of the examples which is to show off the glory of PLplot. Note, for GUI applications like this there is no practical purpose served by making the result identical to any other example, and, although not necessary, I would encourage the volunteer to do something entirely different here to add a bit more interest. > [out of order] For someone who just wants to see > how to use these specific features, they then need to trawl through all this > extra generic plplot code to get to the stuff they want (assuming that they > don't completely overlook the bits they need). Good point which could/should be addressed by carefully segregating the PLplot commands (e.g., using a separate routine) from the rest of the demo source and documentating that segration within the code. I would now like to change to the related topic of ext-cairo-test.c. If we get a volunteer to enhance that code (once the text bug is solved for extcairo), then I would strongly encourage that volunteer to simply copy one of the more complicated standard C examples (say example 9). The reason for this difference with the suggested enhancement of extXdrawable_demo.c is ext-cairo-test.c produces a PostScript file result. That allows us to compare PostScript file results directly to make sure everything is working as intended (at least for the PLplot API subset exercised by the standard example that is copied). 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); PLplot scientific plotting software package (plplot.org); 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 __________________________ |
From: Jonathan W. <jw...@ph...> - 2009-04-21 01:15:19
|
Hi Alan > > There are many other examples and demos in the plplot distribution which > > show off plplot in all its glory. Do we really need to complicate these > > "output driver" demos with code which essentially duplicates what's already > > in other examples? > > One purpose of the examples is to test PLplot capabilities. I am concerned > that extXdrawable_demo.c only exercises 7 PLplot commands (counting plsdev, > plsetopt, plinit, and plend) so there might be hidden issues in the way this > output driver is implemented which are not encountered because PLplot > capabilities are exercised so little. Sure. As a side note however, keep in mind that the extXdrawable "driver" isn't actually a separate driver in its own right. Its functionality is triggered by supplying an option ("external_drawable") to the standard xcairo driver. This option causes the xcairo code to use a preallocated X Drawable rather than creating its own. Aside from that, xcairo works in exactly the same way that xcairo normally works. Having said that, I acknowledge your interest in wanting to exercise the API more fully in this alternative context. > I acknowledge I am paranoid about testing, but that paranoia got an energy > boost today when I noticed the missing text in the ext-cairo-test results. > :-) I understand. It's certainly better to catch bugs before release. > > [out of order] For someone who just wants to see how to use these > > specific features, they then need to trawl through all this extra > > generic plplot code to get to the stuff they want (assuming that they > > don't completely overlook the bits they need). > > Good point which could/should be addressed by carefully segregating the > PLplot commands (e.g., using a separate routine) from the rest of the demo > source and documentating that segration within the code. This I think would be very important to ensure. Regards jonathan |