>
> The eofill setting is saved by the plbuf at a bop (see line 176 and 359 in 
> plbuf.c).
>
Hi Jim - These are changes I made over the weekend. I guess you're not
subscribed to get code change notifications or maybe you missed them
:-)


>
> I have noticed some inconsistencies in the mash-up of plbuf and drivers when 
> it comes to handling state and escape (e.g. plD_esc) functions.  Based on my 
> recollection of old graphics devices, I think I understand the difference 
> (state has to do with internal plplot and escape has to do with commands to 
> the graphic device) but with the way graphics devices have evolved we may 
> want to revisit the implementation (e.g. make sure no settings are getting 
> lost on a replot).

My understanding is the same. state commands change something that
plplot remembers - usually something that is saved in the PLStream,
whereas escapes are commands sent to the drivers to perform an action
- usually rendering. Always thought that was an odd name, when I think
of escape I think of escape sequences in text etc. I guess there is a
historical reason. I also guess that a number of things like setting
the rotation or clipping region or subpage or other things are really
changes of state, but don't go through that code. Again I guess these
are for historical reasons.

>
> The biggest weakness in plbuf is that what it thinks should be saved may not 
> match what is needed.  When working on the core and drivers, it is easy to 
> add a bit of state and not update plbuf.  There might be a way to make plbuf 
> be more aggressive in saving state information and restoring it when 
> replaying the buffer.  I can make the aggressiveness be a setting that a 
> driver can set it if it wants the current behavior—I am concerned that some 
> of the older drivers might have issues.

I actually think that now that the wxWidgets interactive driver (i.e.
the one that gets called from a command line application, rather than
what gets called when you pass in a wxDC) uses the buffer for all its
rendering, we now do rather a good job of keeping on top of these
things. The biggest problems have turned out to be, things that are
stored in PLStream, but don't go through the Plp_State code. The
things that I think still pose challenges are
1) Initialisation and beginning the first page - it can be that when
passing a buffer around we end up initialising more than once and this
has caused issues. I these are mostly sorted now though.
2) Resizing - the buffer stores the coordinates for rendering and the
sizes of text. But if we resize then we may want to scale the text
size, or keep the text size the same and keep the distance of labels
from the axis the same. Currently we keep the text size the same, but
they move relative to the axes.
3) Changes of aspect ratio - This can cause a big mess, especially for
rotated text on plots, axis label positioning and tick mark length.

Actually now that I have listed these, I am going to add 2 and 3 to
the bug tracker so they don't get totally forgotten.

Phil

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to