octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #52940] Regression with "PaperPosition" and pr


From: Dan Sebald
Subject: [Octave-bug-tracker] [bug #52940] Regression with "PaperPosition" and printing
Date: Mon, 29 Jan 2018 00:41:12 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0

Follow-up Comment #39, bug #52940 (project octave):

"At first glance, I am not fond of the idea of moving the routines that
compute opengl matrices from axes objects, where they are executed only when
some property change justifies it, to opengl_renderer, where those routines
will be executed each and every time the graphics toolkit calls
opengl_renderer::draw."

But this is not a real taxing piece of code relative to the rendering process
(see new routine axes::properties::get_transform in the changeset).  The first
thing the renderer does is get its transform.  And this is what allows the
print to be done without any sort of set/reset of figure properties.  The
opengl_renderer will default to using the "Position" property and the
derivative gl2ps_renderer will instead pass in parent_pix_size (a coding
paradigm that was already present in the axes::properties code) representing
"PaperPosition".  Also, it's good object-oriented-programming practice to not
put too much functionality into one object.  Instead, inheriting and building
upon other objects little by little is better.

"Is this all just about avoiding the figure window being rescaled?
Why not simply implement something like graphics_tookit::block_size_updates ()
so that we have the graphics objects right and the figure window size is not
updated ?"

That's not enough?  Sure, in some sense it doesn't matter, but it doesn't
suggest quality software to have the figure momentarily scale half off the
desktop.  But it is more than that.  Hopefully a bit of restructuring here can
make non-visible work, so that Octave doesn't need OSMesa.  I'm not sure how
active OSMesa development is, but the Nvidia driver failure is a lingering
issue.

If you think some kind of block_size_updates for printing is straightforward,
it might be an alternative.  Keep in mind though that there are listeners
(some potentially set by the user) that could be activated whenever a
set(gcf,"property",...) is done.  So, that might need to be addressed in such
a scheme.  These listeners aren't supposed to be activated by a "print"
command, I don't think.  To me, it seems easier to just print in the
background, internally, with PaperPosition instead of the on-screen's use of
Position.

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?52940>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]