* Libbe is not available when cross-building the *_bootstrap packages,
so no libnetwork could not be used either, which made building
anything network-related impossible.
* The only code in libnetwork that requires libbe is the notification,
so I moved that over to libbnetapi. Non-C++ applications can't use
the notification calls anyway, as their interface is C++-only.
* The rounding algorithm here expects to start with the 2 digits
after the decimal point in pll->feedbackDivFrac. Multiplying with
1000 instead of 100 filled it with 3 digits.
The last step then set the fractional part to zero because it was
still too large.
Unfortunately OpenGL screen saver previews draw on top of the tabview,
so, when you switch to the General tab we now stop the screen saver
and then restart it when you come back to the Screensavers tab.
* Update the Doxyfile for 1.7.6.1. Doxywizard reformatted the comments; that's why this change is so big
* Disable graph inheritance trees; use "Inherits/Inherited by" lists instead (Doxygen has this on by default; I don't think it was intentional)
* Shorten two subgroup names; helps with formatting in Doxygen 1.8 and looks cleaner
* Moves the page footer ("The Haiku Book pre-R1...") be in a <footer> tag, and add a CSS rule for this tag
* Disable XML output, no one is using it
* Disable Microsoft IDL parsing, speeds up Doxygen a bit
The main purpose of using atomic_get() was the necessity of a compiler
barrier to prevent the compiler from optimizing busy loops. However,
each such loop contains in its body at least one statement that acts
as a compiler barrier (namely, cpu_wait() or cpu_pause()) making
atomic_get() redundant (well, atomic_get() is stronger - it also issues
a load barrier but in these particular cases we do not need it).
If the initial attempt to acquire read spinlock fails we use more relaxed
loop (which doesn't require CPU to lock the bus). However, check in that
loop, incorrectly, didn't allow a lock to be acquired when there was at
least one other reader.
* DrawPolygon was offsetting coords to pixel centers
regardless of whether the polygon was stroked or
filled, leading to wrong results for filling. Now
it offsets for stroking only and even takes pen-size
into acount. The bug was visible in Gobe Productive's
selection rendering.
* Renamed _Transform() methods to _Align(), which fits
better with what they do: Align coordinates with the
pixel grid.
* Changed rounding behavior for StrokeLine. Offsetting
to pixel centers depending on pen-size happens regardless
of sub-pixel mode. This means a stroked line on integer
coordinates looks the same in both modes. It breaks
some drawing in WonderBrush (brush cursor), which was
exploiting the previous behavior, but unbreaks Gobe
Productive caret rendering at zoom levels below 150%.
Both changes bring Gobe Productive text editing to a useable
level.