From: <he...@co...> - 2015-03-25 21:51:21
|
I use PLplot in a Windows application for plotting frequency response Bode plots from oscilloscope data. It's worked out nicely. One enhancement I'm tackling is getting better font support as well as anti -aliasing. Currently, I'm using the mem driver. I take the buffer and transform it for GDI display. I am aware of the wingcc driver, but I'd prefer to paint to my window vs creating a new one. After some research, I decided that memcairo would be the best approach. After struggling a bit to get PLplot built with cairo/pango, I did get it to work. In the process I came to realize that I'd need to package about a dozen DLLs with my app. While I realize I'm probably swimming upstream I then set out to make static builds of cairo, pango and its dependencies. Even if this works, it will probably bloat my app considerably. So my question is ... is there another driver I should explore that may be better suited for the task at hand. Or should I just suck it up and package the DLLs? Also, I do plan to make this multiplatform some day.<br><br>Thanks! |
From: Alan W. I. <ir...@be...> - 2015-03-25 23:08:44
|
On 2015-03-25 21:51-0000 he...@co... wrote: > I use PLplot in a Windows application for plotting frequency response Bode plots from oscilloscope data. It's worked out nicely. One > enhancement I'm tackling is getting better font support as well as anti -aliasing. Currently, I'm using the mem driver. I take the > buffer and transform it for GDI display. I am aware of the wingcc driver, but I'd prefer to paint to my window vs creating a new one. > After some research, I decided that memcairo would be the best approach. After struggling a bit to get PLplot built with cairo/pango, I > did get it to work. In the process I came to realize that I'd need to package about a dozen DLLs with my app. While I realize I'm > probably swimming upstream I then set out to make static builds of cairo, pango and its dependencies. Even if this works, it will > probably bloat my app considerably. So my question is ... is there another driver I should explore that may be better suited for the > task at hand. Or should I just suck it up and package the DLLs? Also, I do plan to make this multiplatform some day. Our cairo- and qt-related software gives the best font rendering currently, and I just discovered that our newly rewritten wxwidgets-related software also gives great font rendering (e.g., example 24 looks fine) if linked with the latest wxwidgets software. So you may just want to stand pat with your current pango/cairo based approach. On the other hand, if the Qt4 dependency is bit easier to handle for you compared to the pango/cairo dependency, then you should at least take a look at our Qt-related software such as the qt device driver and examples/c++/qt_example. And possibly you might also want to do the same for our new wxwidgets software (see, e.g., examples/c++/wxPLplotDemo), although I should warn you that our new wxwidgets-related software is still being very actively developed with a number of issues in the process of being fixed. 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 __________________________ |
From: Aaron H. <he...@co...> - 2015-03-26 05:08:34
|
Thanks, Alan. I'll check out Qt. Looks like it has a mem driver too. I'll just have to try and see which dependencies are lightest. -----Original Message----- From: Alan W. Irwin [mailto:ir...@be...] Sent: Wednesday, March 25, 2015 6:09 PM To: he...@co... Cc: plp...@li... Subject: Re: [Plplot-general] Am I going about this the best way? On 2015-03-25 21:51-0000 he...@co... wrote: > I use PLplot in a Windows application for plotting frequency response > Bode plots from oscilloscope data. It's worked out nicely. One > enhancement I'm tackling is getting better font support as well as anti -aliasing. Currently, I'm using the mem driver. I take the buffer and transform it for GDI display. I am aware of the wingcc driver, but I'd prefer to paint to my window vs creating a new one. > After some research, I decided that memcairo would be the best > approach. After struggling a bit to get PLplot built with cairo/pango, > I did get it to work. In the process I came to realize that I'd need > to package about a dozen DLLs with my app. While I realize I'm > probably swimming upstream I then set out to make static builds of cairo, pango and its dependencies. Even if this works, it will probably bloat my app considerably. So my question is ... is there another driver I should explore that may be better suited for the task at hand. Or should I just suck it up and package the DLLs? Also, I do plan to make this multiplatform some day. Our cairo- and qt-related software gives the best font rendering currently, and I just discovered that our newly rewritten wxwidgets-related software also gives great font rendering (e.g., example 24 looks fine) if linked with the latest wxwidgets software. So you may just want to stand pat with your current pango/cairo based approach. On the other hand, if the Qt4 dependency is bit easier to handle for you compared to the pango/cairo dependency, then you should at least take a look at our Qt-related software such as the qt device driver and examples/c++/qt_example. And possibly you might also want to do the same for our new wxwidgets software (see, e.g., examples/c++/wxPLplotDemo), although I should warn you that our new wxwidgets-related software is still being very actively developed with a number of issues in the process of being fixed. 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 __________________________ |
From: Alan W. I. <ir...@be...> - 2015-03-26 06:57:38
|
On 2015-03-26 00:08-0500 Aaron Hexamer wrote: > Thanks, Alan. I'll check out Qt. Looks like it has a mem driver too. I'll > just have to try and see which dependencies are lightest. P.S. At this stage I would definitely recommend the latest version of Qt4 rather than experimenting with Qt5. The latter does mostly work with our qt device driver and qt_example (using the experimental -DPLPLOT_USE_QT5=ON option), but is just not nearly as reliable as Qt4 in our experience. I am sure Qt5 will eventually get there, but it just needs a lot more time to mature properly. 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 __________________________ |
From: Aaron H. <he...@co...> - 2015-03-31 03:29:22
|
Alan, Thanks for the hint on Qt4 vs Qt5 - probably spared me a few hours of pain! I set out to trial the memqt driver and ran into some issues with the build on MSVC 2012. 1) For some reason, which I had never encountered before, the CMake system generates incorrect build files when the source path includes spaces. Not a big deal really, I can just move to a path without spaces. I don't recall the exact issue, but I think it broke up include paths into separate entries. I am using a fairly old version of CMake (2.8.12.2) I started with Qt configured for dynamic linking 2) I tried to build PLplot as a shared lib, then realized that was not really going to work for me since my application accessed some other normally private functions, not exported in the DLL (pldtik, pldprec, etc). 3) I tried to build PLplot as a static lib (which I normally do for my app anyway). But then I started getting incompatible linkage warnings and some errors about trying to initialize dllimport'ed data (\plplot-plplot\bindings\qt_gui\plqt.cpp(28): error C2491: 'vectorize' : definition of dllimport data not allowed). After finding/following the thread here (http://ehc.ac/p/plplot/mailman/message/33603310/), I began to suspect that the USINGDLL macro might be an issue. Despite the fact that I configured PLplot for static build it seems that the cmake scripts still applied USINGDLL to the plqt.c file. Is that expected (I don't totally understand the use of USINGDLL in all the contexts)? Is it perhaps related to the issue described in that thread on the devel list? Thanks, Aaron. -----Original Message----- From: Alan W. Irwin [mailto:ir...@be...] Sent: Thursday, March 26, 2015 1:58 AM To: Aaron Hexamer Cc: plp...@li... Subject: RE: [Plplot-general] Am I going about this the best way? On 2015-03-26 00:08-0500 Aaron Hexamer wrote: > Thanks, Alan. I'll check out Qt. Looks like it has a mem driver too. > I'll just have to try and see which dependencies are lightest. P.S. At this stage I would definitely recommend the latest version of Qt4 rather than experimenting with Qt5. The latter does mostly work with our qt device driver and qt_example (using the experimental -DPLPLOT_USE_QT5=ON option), but is just not nearly as reliable as Qt4 in our experience. I am sure Qt5 will eventually get there, but it just needs a lot more time to mature properly. 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 __________________________ |
From: Alan W. I. <ir...@be...> - 2015-03-31 06:22:23
|
Hi Aaron: On 2015-03-30 22:29-0500 Aaron Hexamer wrote: > Alan, > > Thanks for the hint on Qt4 vs Qt5 - probably spared me a few hours of pain! > I set out to trial the memqt driver and ran into some issues with the build > on MSVC 2012. > > 1) For some reason, which I had never encountered before, the CMake system > generates incorrect build files when the source path includes spaces. Not a > big deal really, I can just move to a path without spaces. I don't recall > the exact issue, but I think it broke up include paths into separate > entries. I am using a fairly old version of CMake (2.8.12.2) That's an issue with our own build system and not CMake. From time to time we try and clean up some aspect of this issue, but it is a low priority because it is so easy to use PATH's without spaces in them. > > I started with Qt configured for dynamic linking > > 2) I tried to build PLplot as a shared lib, then realized that was not > really going to work for me since my application accessed some other > normally private functions, not exported in the DLL (pldtik, pldprec, etc). > > 3) I tried to build PLplot as a static lib (which I normally do for my app > anyway). But then I started getting incompatible linkage warnings and some > errors about trying to initialize dllimport'ed data > (\plplot-plplot\bindings\qt_gui\plqt.cpp(28): error C2491: 'vectorize' : > definition of dllimport data not allowed). After finding/following the > thread here (http://ehc.ac/p/plplot/mailman/message/33603310/), I began to > suspect that the USINGDLL macro might be an issue. Despite the fact that I > configured PLplot for static build it seems that the cmake scripts still > applied USINGDLL to the plqt.c file. Is that expected (I don't totally > understand the use of USINGDLL in all the contexts)? Is it perhaps related > to the issue described in that thread on the devel list? Are you using PLplot-5.10.0 or the git master tip version (which is about to turn into PLplot-5.11.0)? I would prefer you to try the master tip version if you haven't been doing that already because it has been a very long time since 5.10.0 was released, I am much more familiar with the master tip version, and I would like to get the master tip version tested as well as possible before the 5.11.0 release. For example, if you spot a USINGDLL issue for that version (such as USINGDLL being defined for the static library case), please let me know with lots of details. 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 __________________________ |
From: Aaron H. <he...@co...> - 2015-03-31 12:45:10
|
Alan, The version I'm using is from git, but after doing a remote fetch, I can see that I'm a few commits behind. I'm working off of 0bfe721. Happy to provide as many details as you need. Should I advance first and see if its fixed? Is there a bug submission std I can check out to see how much detail you'd like? Thanks, Aaron. -----Original Message----- From: Alan W. Irwin [mailto:ir...@be...] Sent: Tuesday, March 31, 2015 1:22 AM To: Aaron Hexamer Cc: plp...@li... Subject: RE: [Plplot-general] Am I going about this the best way? Hi Aaron: On 2015-03-30 22:29-0500 Aaron Hexamer wrote: > Alan, > > Thanks for the hint on Qt4 vs Qt5 - probably spared me a few hours of pain! > I set out to trial the memqt driver and ran into some issues with the > build on MSVC 2012. > > 1) For some reason, which I had never encountered before, the CMake > system generates incorrect build files when the source path includes > spaces. Not a big deal really, I can just move to a path without > spaces. I don't recall the exact issue, but I think it broke up > include paths into separate entries. I am using a fairly old version > of CMake (2.8.12.2) That's an issue with our own build system and not CMake. From time to time we try and clean up some aspect of this issue, but it is a low priority because it is so easy to use PATH's without spaces in them. > > I started with Qt configured for dynamic linking > > 2) I tried to build PLplot as a shared lib, then realized that was not > really going to work for me since my application accessed some other > normally private functions, not exported in the DLL (pldtik, pldprec, etc). > > 3) I tried to build PLplot as a static lib (which I normally do for my > app anyway). But then I started getting incompatible linkage warnings > and some errors about trying to initialize dllimport'ed data > (\plplot-plplot\bindings\qt_gui\plqt.cpp(28): error C2491: 'vectorize' : > definition of dllimport data not allowed). After finding/following > the thread here (http://ehc.ac/p/plplot/mailman/message/33603310/), I > began to suspect that the USINGDLL macro might be an issue. Despite > the fact that I configured PLplot for static build it seems that the > cmake scripts still applied USINGDLL to the plqt.c file. Is that > expected (I don't totally understand the use of USINGDLL in all the > contexts)? Is it perhaps related to the issue described in that thread on the devel list? Are you using PLplot-5.10.0 or the git master tip version (which is about to turn into PLplot-5.11.0)? I would prefer you to try the master tip version if you haven't been doing that already because it has been a very long time since 5.10.0 was released, I am much more familiar with the master tip version, and I would like to get the master tip version tested as well as possible before the 5.11.0 release. For example, if you spot a USINGDLL issue for that version (such as USINGDLL being defined for the static library case), please let me know with lots of details. 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 __________________________ |
From: Alan W. I. <ir...@be...> - 2015-03-31 15:29:39
|
On 2015-03-31 07:45-0500 Aaron Hexamer wrote: > Alan, > > The version I'm using is from git, but after doing a remote fetch, I can see > that I'm a few commits behind. I'm working off of 0bfe721. Happy to > provide as many details as you need. Should I advance first and see if its > fixed? Yes, please. > Is there a bug submission std I can check out to see how much detail > you'd like? Yes. Look at the last part of <https://sourceforge.net/p/plplot/wiki/Building_PLplot/>. Thanks in advance. 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 __________________________ |
From: Alan W. I. <ir...@be...> - 2015-03-31 16:25:33
|
Hi Aaron. There has been a very recent development. One of our core developers has just run into the same bug of being unable to build plplotqt for the static library case because the compile flag -DUSINGDLL has been incorrectly used for that case. I have fixed it on my local system, but SourceForge has a complete outage at this time (ugh) so I cannot propagate that fix (yet) to a place where you can use it. Once SF is back up, if you haven't done so already, I would sign up for our git feed so you will get e-mail notice of each PLplot git commit to the master branch (which, for example, would let you know when my fix is pushed to master). In order to do that signup login to Sourceforge (once SF is back up) go to our SF project page -> Code, and sign up for the git feed (using one of the menu items on that Code page). 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 __________________________ |
From: Alan W. I. <ir...@be...> - 2015-03-31 17:19:58
|
On 2015-03-31 09:25-0700 Alan W. Irwin wrote: > Hi Aaron. > > There has been a very recent development. One of our core developers > has just run into the same bug of being unable to build plplotqt for > the static library case because the compile flag -DUSINGDLL has been > incorrectly used for that case. I have fixed it on my local system, > but SourceForge has a complete outage at this time (ugh) so I cannot > propagate that fix (yet) to a place where you can use it. > > Once SF is back up, if you haven't done so already, I would sign up > for our git feed so you will get e-mail notice of each PLplot git > commit to the master branch (which, for example, would let you know > when my fix is pushed to master). In order to do that signup login to > Sourceforge (once SF is back up) go to our SF project page -> Code, > and sign up for the git feed (using one of the menu items on that Code > page). Hi Aaron: SF now working again, and I have pushed this bug fix (commit id b6b60d1). Please test that this solves the issue. 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 __________________________ |
From: Aaron H. <he...@co...> - 2015-03-31 17:58:02
|
Alan, Confirmed - this fixes the build issues I was having. I can now build static lib PLplot using Qt (dynamic) from b6b60d1. I can also successfully use memqt in my application. Thanks, Aaron. -----Original Message----- From: Alan W. Irwin [mailto:ir...@be...] Sent: Tuesday, March 31, 2015 12:20 PM To: Aaron Hexamer Cc: plp...@li... Subject: Re: [Plplot-general] Am I going about this the best way? On 2015-03-31 09:25-0700 Alan W. Irwin wrote: > Hi Aaron. > > There has been a very recent development. One of our core developers > has just run into the same bug of being unable to build plplotqt for > the static library case because the compile flag -DUSINGDLL has been > incorrectly used for that case. I have fixed it on my local system, > but SourceForge has a complete outage at this time (ugh) so I cannot > propagate that fix (yet) to a place where you can use it. > > Once SF is back up, if you haven't done so already, I would sign up > for our git feed so you will get e-mail notice of each PLplot git > commit to the master branch (which, for example, would let you know > when my fix is pushed to master). In order to do that signup login to > Sourceforge (once SF is back up) go to our SF project page -> Code, > and sign up for the git feed (using one of the menu items on that Code > page). Hi Aaron: SF now working again, and I have pushed this bug fix (commit id b6b60d1). Please test that this solves the issue. 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 __________________________ |