* Add isb just because.
* pdziepak pointed out that ARMv5 and before
had different barrier support.
* pdziepak also mentioned that dsb was too strong
for __sync_synchronize
* On ARMv6 or older, we do a simulated dsb.
* Move __sync_synchronize into thread.c in libroot
and use the new arch_atomic.h dsb/dmb defines.
* Gets arm @bootstrap-raw to end of bootstrap.
Since fonts are cached with a precision of one digit after the decimal point
for the font size, the char spacing values needs to be more precise. They are
now in font face units and scaled by the font size during layout. This yields
the expected results of the text positioning scaling smoothly along the base
line, even though the actual (hinted) glyph shape does not change with each
small change of the scale (or font size).
It doesn't yield quiet the expected results, yet. When hinting is turned on,
FontEngine takes a measurement of the precise advance values for each
cached glyph by invoking FT_Load_Glyph() with the FT_LOAD_NO_HINTING flag,
before loading the glyph for real without that flag. In GlyphLayoutEngine.h,
the precise advance value is used for B_CHAR_SPACING. The intended result
is that glyphs are rendered hinted (according to global Appearance settings),
but spaced along the base-line with precise, unhinted advance values. An
application would use this for example to implement precise page or print
preview and also for zooming text without altering the placement of glyphs.
For Gobe Productive, problems can be observed, because we don't implement this
correctly, yet.
* The code path actually used when the client uses BView::SetFont()
is DrawState::ReadFontFromLink(), where it forgot to a) adopt the
original font size in fUnscaledFontSize and b) scale the font by the
current combined scale. Fixes remaining part of #10578.
* Change default spacing to B_BITMAP_SPACING. The BeBook does not document
what the default spacing is, and I have no BeOS install handy to check.
However, I believe that B_BITMAP_SPACING is what should be the default,
since it gives the best visible result for the common use-case.
In terms of implementation, there is no change, since spacing was ignored
until now and the behavior was that of B_BITMAP_SPACING. This change could
however break BeOS apps which assume B_CHAR_SPACING is the default and don't
set it on new when they need it. Sample code in the BeBook however shows
setting B_CHAR_SPACING on a newly created BFont.
* Implement B_STRING_SPACING to do something sensible. The BeBook documentation
is completely vague in what it is actually supposed to do. Given the
possibilities of FreeType, I am implementing it to enable the use of
kerning. Kerning optimizes the spacing between two glyphs, for example, it
would decrease the spacing between "T" and "e" in the string "Test" for
our default font. Untested.
* Unify asterisk style
* switch indentation style of FontList declaration
* Order FontList methods according to declaration
* Use named constants in default BFont constructor for spacing and encoding.
* Don't assume verdex as it isn't clear this was
occurring.
* Make an educated guess on HAIKU_BOOT_PLATFORM
based on provided board (but still allow it to
be overridden)
* Error out if user doesn't populate
HAIKU_BOOT_PLATFORM or enters an unknown board
name.
* You need to add "-sHAIKU_BOOT_BOARD=xxx" to
your jam to build for the proper ARM device.
* Rename beagle to beagleboneblk as per the
documentation.
BFilePanel always sends B_CANCEL when it hides (as documented in the BeBook),
not just when the user cancels the file panel. Track what message we expect
and only react to B_CANCEL when it means the user really canceled selecting
the target folder.
When Settings.ModuleName() returned NULL here we got a segmentation fault
trying to access the pointer.
I ran into this trying to load up a non-screensaver executable in ScreenSaver,
it crashed instead of doing the right thing and refusing to load.
Also, since we go to the trouble of saving this to a variable, we should actually use it.
HAIKU_* variables are copied to TARGET_*, making it possible to also
build for other targets (libbe_build, or BeOS R5 when we still allowed
that).
Thanks to Ingo for explaining how this is meant to work.
... mirroring home/config/non-packaged/
Also, sort the list lexographically and move the creation of the non-packaged
decorators directory from HaikuImage to HaikuImageCommon along with the rest.
GCC doesn't provide an ARM implementation of it. It's easy to write one
for ARMv6 and above, while older archs will need this implemented as a
syscall just like other atomics.
We have the same problem as on x86_64: posiiton dependant code isn't
allowed in shared libraries. Since Kernel.so is not used at runtime,
we can use the same hack as on x86_64, and use elfedit to make the
linker think our kernel is a shared library.
* ArchitectureRules define a variable named HAIKU_ASFLAGS, so other
Jamfiles can append to it.
* But, TARGET_ASFLAGS was used instead in the single place where we
tried to make use of this (the verdex BoardSetup), and in the As rule
* Moreover, the As rule used $(architecture) instead of
$(TARGET_PACKAGING_ARCH) (I suspect a bogus copypaste?). So, it never
actually made use of the flags
With this working, add the proper flags to the BeagleBoard BoardSetup,
so we implement atomic operations the ARMv7 way (no need to syscall).
This helps with compiling, as the As and Cc/Cpp rules now agree on the
defines and the atomic implementation to use.
Also, we are safe to enable direct mode now (it already was)
This is untested due to this screensaver currently crashing but it should
work once #10206 is fixed.
Remove obvious comment in DirectConnected
Now that this screensaver shows a preview, update the settings live
so that the display updates immediately.
Since this didn't work before this screensaver took a shortcut and only
updated the settings when the saver started.
Some other changes include:
* Update copyright header, add myself to the authors list.
* Convert Particle from using a BList to a BObjectList and remove casts.
* Use switch statement to set particle color that has a default case for blue.
* Initialize member variables to a default value in the constructor.
* Remove Constants.h, the remaining constants are in ConfigView.cpp
* Convert deprecated GroupLayoutBuilder to a LayoutBuilder template instance
* Convert GravitySource from a class to a struct since all members are public.
* Simplify realCount calculation to just a single left shift.
* A bunch of style fixes
- lots of whitespace fixes
- rename rect to frame in GravityView and ConfigView
- reorder the frame parameter first in GravityView and ConfigView
- curly brace goes on same line as class or struct declaration
This turned out to be a bigger change than I originally intended to make.