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

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

[Octave-bug-tracker] [bug #48273] Incorrect axes position updates in Ope


From: John W. Eaton
Subject: [Octave-bug-tracker] [bug #48273] Incorrect axes position updates in OpenGL plotting
Date: Thu, 25 Oct 2018 10:54:45 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

Update of bug #48273 (project octave):

                 Summary: Race condition in OpenGL plotting => Incorrect axes
position updates in OpenGL plotting

    _______________________________________________________

Follow-up Comment #16:

The problem appears to be that the position properties are screwed up when the
axes and labels won't fit inside the outerposition bounding box.  For example,
try this modified script and see what happens to the position, outerposition,
and tightinset properties:


set(0, "defaultfigureunits", "normalized") ;
set(0, "defaultfigureposition", [0.7   0.7   0.25   0.25]) ;

clf ;
n =  15;
x = randn(3,n) ;
for j=1:n
   subplot(n,1,j) ;
   plot(x(:,j)) ;
endfor
#print foo.png

ax = get (gcf, "children");

get (ax(5), "outerposition")
get (ax(5), "tightinset")
get (ax(5), "position")


With this script, I see


ans =

     0.00000   206.33737     1.00000  -412.07684

ans =

    0.0375000   13.7706152    0.0078125   13.7539474

ans =

     0.13000   220.10799     0.77500  -439.60140


The width of a bounding box should not be negative!

If I uncomment the print command I see an error from the gl2ps renderer and
the results appear to be even worse:


warning: gl2ps_renderer::draw_axes: empty feedback buffer and/or nothing else
to print
warning: called from
    __opengl_print__ at line 158 column 7
    print at line 574 column 14
    fooscript at line 12 column 1
ans =

   0.0000e+00   2.5315e+20   1.0000e+00  -5.0631e+20

ans =

   4.2188e-02   2.4746e+17   7.8125e-03   2.4746e+17

ans =

   1.3000e-01   2.5340e+20   7.7500e-01  -5.0680e+20


I'm not sure whether the problem is with the computation of tightinset,
looseinset, or the updates of the position properties and I can't really
follow the logic of the update_position and update_outerposition functions.

Maybe this additional info will be enough to allow someone else who has a
better understanding of the plotting properties to fix this problem.

Also, what is the looseinset property about?  Is it really necessary?

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?48273>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

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