Hi Aaron: I am putting this further discussion on the plplot-devel mailing list since some developers there have more device expertise than I do (and also a lot more Windows expertise) and therefore will likely want to contribute to the discussion.
On 2015-05-13 07:37-0500 Aaron Hexamer wrote: > [....] I've been wondering is if it > would be feasible to make a driver that uses more of Window's raw API for > shapes and text, thus avoiding the need for libs like Qt, Cairo-Pango, etc. > - one would still get portability through other drivers on other platforms. > It looks like wingcc is somewhat like that, but preferred to use Freetype. > I gather from looking at the history that text rendering is challenging, > especially around vertical alignment topics. For your information, the plfreetype approach is strongly deprecated. The primary reason for this is the user can only control the selection of the needed font files at cmake time or else at run-time via environment variables which is a very clumsy approach. A secondary reason is the plfreetype approach only works for simple text layout (left-to-right) languages. Instead, our preferred approach is to rely on external libraries such as pango/cairo/fontconfig, Qt, or wxwidgets to automatically select the best system font (of the sans, serif, normal weight, bold, etc., generic classes of fonts that PLplot supports) to render each unicode glyph encountered (which automatically allows multi-language plots such as example 24) and to do the required (complex) text layout. Thus, I agree that the plfreetype approach used by wingcc (the last device driver that still uses that approach) should be completely replaced by calling the appropriate native Windows API for selecting the best system font to render each unicode glyph that is encountered and to do the text layout. I think in the past that Arjen Markus has commented this approach should be possible, but he has not had time to pursue it further. Also, my understanding is that Jim Dishaw has worked on implementing a Windows device driver. I am not sure what the status of that project is, but he might have some comments also about the feasibility of modifying wingcc this way. Anyhow, if you feel such modification of wingcc is possible, I would encourage you to give it a try following, say, the broad outline of the alt_unicode text handling that is done in drivers/cairo.c. 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 __________________________ ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel