The point of this bug report is to keep track of all the issues (some with plbuf some with wxwidgets) that are demonstrated with the new wxwidgets device. Note this edited summary reflects the latest test on Debian stabnle of new wxwidgets as of the PLplot-5.11.0 release and largely supersedes all other comments here which were typically made substantially before that release date before additional bug fixing of wxwidgets was done. Each of the issues in this summary are labelled at the end with one of "(wxwidgets)", "(buffer)", or "(not sure)" depending on current thinking about which component is causing the problem. Additional tags are "(wxwidgets, interactive)" which labels all issues where it is thought that adding more interactive capability between the (server) application and (client) wxPLViewer is likely the solution for the issue and (wxwidgets, Debian stable) for wxwidgets issues which are thought to be specific to the Debian stable platform.
Text much too small for all examples. Increasing all text sizes by something close to a factor of two (say to fill all the squares by the numbers in example 2.2 just like for the xcairo, qtwidget, and xwin device) is needed. (wxwidgets)
Superscript and subscript vertical spacing is inconsistent for -dev wxwidgets compared to other devices. Use a call to plP_script_scale (as currently done
by the cairo, qt, pdf, ps, psttf, and svg device drivers) to get rid of this inconsistency. (wxwidgets)
Some examples, (e.g, 8, 17, and 20) are much slower to display than with old wxwidgets. (not sure)
Erases executed by example 17 are not getting done when the plot is rescaled. (wxwidgets, interactive)
Example 20.03 does not allow the user to set the cursor. Compare with the cursor capability shown with this example page for -dev xwin. (wxwidgets, interactive)
Note -dev wxwidgets cursor capability is currently similar to that of -dev xcairo and -dev qtwidget. All three devices have sufficient interactive capability to print out cursor position results for example 1 with the -locate option, but all three devices fail to allow the user to select a region in example 20.03. So all three should be updated to have the same cursor capabilities as -dev xwin.
Example 26.02 has an issue with too large a legend for the Cyrillic version of the plot. (wxwidgets)
Example 28.04 has a strange colour change for certain ranges indicated below for the rendering of the
"The future of our civilization depends on software freedom."
^^^^^^^^ ^^^^^^^
3D string. Those colour changes occur when the letters in the string are mostly reduced to the (expected) straight lines by the 3D affine transformation. This issue cannot be verified on other platforms so is likely due to some special issue with my Debian stable wxwidgets software library. (wxwidgets, Debian stable)
Example 28.05 has affine transformation issues. (wxwidgets)
Example 30.02 has ugly looking gradient results which are due to falling back to core software emulation of a linear gradient. Instead, as discussed on list a linear gradient based on the wxwidgets library API should be used instead to get very nice results for this example (such as those from the cairo and qt devices). (wxwidgets)
Example 34: the qtwidgets device does not support draw mode. Assuming we want to implement this someday we need to follow what is done for xcairo (which is the only device so far that has draw mode
capability). (wxwidgets)
Diff:
Diff:
Additional notes from Andrew Ross. Tested on Ubuntu 14.10 (Utopic).
Example 14 works for me, including slave windows.
Example 19. All pages display, but aspect ratio is wrong.
Example 20 does work, but is very slow. Aspect ratio for the images is wrong.
I've occasionally had wxPlviewer exit part way through a series of plots, but without any error message. It happens when pressing return a couple of times quickly, but not enough times to get through all pages. I noticed this with example 23. Start it up then press return 4 times in quick succession. This seems to reproducibly result in the example finishing early.
Last edit: Andrew Ross 2015-02-23
•x01 and x02.02, x09.01, x23 text size isn't a great match, wxWidgets
•x03 page note rotated, aspect ratio incorrect (circles are rendered as ellipses), not sure
A number of these issues have now been solved or turned out to be non-issues caused by the fact that the online examples used for comparison are for the current release version not the trunk. The remaining issues are as follows
•All hatchings seem to have an extra horizontal line, not sure of the cause, but probably a buffer issue as the driver doesn't have any concept of hatchings and any hatching plot seems to cause the xwin driver to crash.
•Some aspect ratios are wrong. This occurs in the map example x19 and x14 where circles get turned into ellipses. However x03 is fine. This is probably something to do with calls to di related functions as these are called in x03 or just parameters used when setting up the window - need to check that things like px per mm are correct which are used when just is used. This also messes up the angles of text.
•background colours change one page too early (e.g. x16, x19), not sure of the cause
•Rendering large plots or plotting many times as the buffer grows is very slow. This needs better growth strategy for the buffer when copied into PLplot to mimic the regular growth strategy. x20 and x17 are good examples of this
•Inline font changes don't work (see x23 final few pages), probably the inline changes get parsed before they are saved to the buffer
•x26.02 has a very wide legend compared to other drivers, not sure why
•Sub and super scripts are reversed in x28.02/03
•Very unpleasant antialiasing effects in x30.02, wxWidgets
AWI note, these effects are caused by the PLplot software fallback gradient when devices don't supply a native gradient themselves. So the cure is to supply a native gradient for the wxwidgets device, i.e., rely on the wxwidgets library software API [something like CreateLinearGradientBrush?] to draw a linear gradient.
Phil note, this is true, but it would be good to be able to do contour fills with transparency.
•Early exit as reported by Andrew - Reproduced now on example 23
Last edit: Phil Rosenberg 2015-02-25
Early exit now fixed. This was caused by trying to move to a page that hadn't yet been read from the memory map, meaning wxPLViewer thought it had reached the end of the feed.
Diff:
Diff: