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

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

[Octave-bug-tracker] [bug #32980] OpenGL plotting backend uses single pr


From: INVALID.NOREPLY
Subject: [Octave-bug-tracker] [bug #32980] OpenGL plotting backend uses single precision, not double
Date: Tue, 4 Apr 2023 04:07:39 -0400 (EDT)

Follow-up Comment #30, bug #32980 (project octave):

Is
[https://docs.octave.org/doxygen/stable/dd/d82/gl-render_8cc_source.html#l02422
this] the location where the precision is no longer controlled by Octave?

It looks like _opengl_renderer_ in
[https://docs.octave.org/doxygen/stable/dd/d82/gl-render_8cc_source.html#l02373
gl-render.cc]_ contains a member of type _graphics_xform_ which in turn
contains can do matrix / affine transformations via the member _Matrix
m_xform_ and do (non linear) scaling via the members _scaler m_sx, m_sy,
m_sz_.

This _graphics_xform_ object is used _in forward direction_ to transform the
graphic objects _before_ passing to OpenGL (e.g. _renderer::draw_line_).

It is also (appears to be) used in _reverse direction_ to _untransform_ mouse
position in screen coordinates back to data coordinates (particularly
important for semilog and loglog plots).

Can this parameter (which is already a present feature and well tested) be
used to solve this issue?

IMO, the transform should be handled by an axis as the axis object will need
to apply the same transform to all its children if one of the children needs
transformation.

Should a plot* function or axis-limit-setting-function detect large values (or
large dynamic range or large axis limits) and set this graphic_transform
object to non default values to shift and scale the data to within the range
of single precision?

Is it worth pursuing along this line?


    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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