The intent of this use of glBitmap is to move the raster position
without drawing anything. However, it may be required to use None
instead of the empty bytes object for this. I couldn't quite verify
this as I don't have an affected system.
The final argument is the 'bitmap' argument. The use of a NULL bitmap
together with nonzero xmove/ymove parameters is explicitly
documented as a valid way to move the raster position
(including to offscreen positions); doing it with a zero byte bitmap
is apparently unsupported in some OpenGL implementation even if the
width×height of the bitmap is 0 pixels.
https://docs.gl/gl3/glBitmap specifically documents that negative width
and height are errors, but doesn't document that a height or width of 0
is invalid.
This occurs since the switch to pyopengl (yay!) but only if python3-numpy
is not also installed.
I was able to eliminate the conversion of the matrix to its 1D / list form
entirely.
I think I got pretty good coverage of everything _except_ qt vismach
in my testing, both with and without python3-numpy installed. qt vismach
should be the same as tk vismach, as I made edits with the same intended
effect.
this was probably lost with the switch to pango fonts.
pango_font_{pre,post} are factored out in anticipation of a smarter
use of this code where the overhead of the opengl state changes is
amortized over more than one letter.