When drawing a bilinear-scaled bitmap with agg, we used to interpolate
the edge pixels assuming everything out of the picture was black. This
led to an ugly dark border around the scaled image.
Instead, use the "clone" method, which repeats the last line or column
of pixels around the image, leading to more correct results in most
cases.
This also helps with some of WebKit tests, which are trying to use
images as references and don't expect an extra border around them.
* As the OpenGL kit is assumed by most ports (and BeOS apps)
to "exist", lets make mesa_devel present by default until
post R1
* mesa_swrast ensures we always have the basic swrast renderer
To play with mesa_swpipe (gallium llvmpipe, gcc4) uninstall
mesa_swrast and install mesa_swpipe. (you can install both,
but it's first renderer found, first used atm)
* Fix issue where mesa_devel attempted to lay
a symlink over a directory causing instability
installing mesa_devel
* Add mesa_swpipe to repos (LLVM enabled Gallium softpipe)
Apart from the refactoring this commit takes the opportunity and removes
unnecessary read locks when choosing a package and a core from idle lists.
The data structures are accessed in a thread safe way and it does not really
matter whether the obtained data becomes outdated just when we release the
lock or during our search for the appropriate package/core.
- In the case of DWARF4's DW_OP_implicit_value, respective handling in
Value{Piece}Location wasn't entirely correct, which would lead to double
frees in various cases, in particular when copying such objects on the stack.
As such, introduce an explicit Copy() member to handle replicating the stored
implicit data to avoid that issue. Furthermore, the use of Array<> in
ValueLocation wasn't really suitable anymore since ValuePieceLocation now
needs its constructor/destructor to be executed, while Array is intended for
POD types; consequently, replace that with std::vector and adjust handling
code accordingly.
* Fix off-by-one issue in Draw() and GetPreferredSize(). The label was
too close to the knob.
* GetPreferredSize(): Remove empty space to the right, when no label
and no icon was specified. Like with BCheckBox there's still two rows
of empty pixels above and below the knob.
* Draw(), GetPreferredSize(): Add icon support.
* Draw(): Remove the non-BControlLook code.
* GetPreferredSize(): Implement based on _ValidatePreferredSize() to
avoid code duplication.
* Draw(): Fix off-by-one error. The label was too close to the box.
* Draw(), _ValidatePreferredSize(): Add icon support.
_ValidatePreferredSize() is now actually aligned with what Draw()
expects. The preferred width is now a tight fit; there were three or
four pixels of empty space before.
Due to the fixed check box position the layout isn't that nice in
some situations (particularly with an icon larger than the text),
IMHO.
* BFont::TruncateString() expects a pixel count (as opposed to a pixel
distance). That would cause a tightly fitting string to be truncated.
* Round the result of StringWidth() to avoid drawing at a non-integer
location.
The icon is meant as an addition to or replacement of the label. Icon
bitmaps for various states of the control (off, on, partially on, each
enabled or disabled, plus up to 125 custom states) can be set
individually via SetIconBitmap() (getter IconBitmap()).
The convenience method SetIcon() can be used to set the bitmaps for the
standard states from a single bitmap; it also supports cropping the
icon to its non-transparent area. Code borrowed from BIconButton.
* Update the previously unused frame_type and background_type enums.
* Add methods GetFrameInsets(), GetBackgroundInsets(), GetInsets() to
get the insets for a given frame type, background type, or both
respectively.