History log of /haiku/src/servers/app/drawing/Painter/drawing_modes/DrawingModeAdd.h
Revision Date Author Comments
# 61ed28ee 21-Jun-2008 Michael Lotz <mmlr@mlotz.ch>

* All drawing modes except for B_OP_COPY should respect transparent pixels in
source bitmaps. The destination is preserved now when encountering such
transparent pixels in the source bitmaps.
* B_OP_ERASE is supposed to replace with the low color whereever a source
bitmap has a non-transparent pixel.
* The B_OP_MIN and B_OP_MAX drawing modes are supposed to select either the
source or destination pixel based on their brightness, not combine the two
pixels' color components into a new pixel. The brightness_for() function is
taken from ColorConversion.cpp in the interface kit. Probably a simpler
algorithm would do as well.
* Handle B_TRANSPARENT_MAGIC_* in all cases when drawing bitmaps with non-alpha
source bitmaps, as all modes except B_OP_COPY are sensitive to transparency.

This should make all drawing modes behave as documented in the BeBook. Except
for B_OP_SELECT, which seems broken under R5, the results compare nicely now.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26075 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f7e1df75 16-Aug-2007 Stephan Aßmus <superstippi@gmx.de>

* get rid of RGBColor usage where it is not needed, this simplified many things,
possibly making them a little faster too
* mess with decorator button size calculation to make the whole layout scale
more agreeable with the font size (no more fixed offsets/insets), but it
is work in progress
* DefaultDecorator no longer allocated the border color array, it is part of
the object now
* small memory footprint optimizations in ViewLayer, Decorator and WindowLayer


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22003 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38f9b78d 05-Jul-2006 Jérôme Duval <korli@users.berlios.de>

seems I was wrong here : no overflow happens since the comparison is done on the fly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18041 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63e9b45d 04-Jul-2006 Jérôme Duval <korli@users.berlios.de>

tentative fix for B_OP_ADD


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18039 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e39da397 14-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

* long overdue update to AGG 2.4
* removed the useless parts of AGG (which are only needed for the
interactive examples)
* make sure to jam -a libagg.a to solve any linking issues


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17838 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9d909e25 25-Dec-2005 Stephan Aßmus <superstippi@gmx.de>

first simplistic implementation of drag bitmaps, drawing modes need more work, drawing text into offscreen bitmaps seems to be broken for some weird reason, B_OP_COPY actually copies the alpha value of the color as well

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8d7b8e8c 19-Dec-2005 Stephan Aßmus <superstippi@gmx.de>

complete rework of the drawing_modes implementation... I achieved a speedup of 8 to 9 times, tested with text rendering. Believe it or not, but the Haiku text rendering is now faster than R5 for B_OP_COPY at least. And there is quite some room for improvement yet. (faster text bounding box calculation, avoiding the double UTF8 conversion, etc)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15596 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 74994d13 25-May-2005 Stephan Aßmus <superstippi@gmx.de>

added license headers

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12817 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0fe8a07 25-Mar-2005 Stephan Aßmus <superstippi@gmx.de>

moved Painter into drawing

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11989 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 61ed28ee13e6bcf41a9c39c834c1a238881214bd 21-Jun-2008 Michael Lotz <mmlr@mlotz.ch>

* All drawing modes except for B_OP_COPY should respect transparent pixels in
source bitmaps. The destination is preserved now when encountering such
transparent pixels in the source bitmaps.
* B_OP_ERASE is supposed to replace with the low color whereever a source
bitmap has a non-transparent pixel.
* The B_OP_MIN and B_OP_MAX drawing modes are supposed to select either the
source or destination pixel based on their brightness, not combine the two
pixels' color components into a new pixel. The brightness_for() function is
taken from ColorConversion.cpp in the interface kit. Probably a simpler
algorithm would do as well.
* Handle B_TRANSPARENT_MAGIC_* in all cases when drawing bitmaps with non-alpha
source bitmaps, as all modes except B_OP_COPY are sensitive to transparency.

This should make all drawing modes behave as documented in the BeBook. Except
for B_OP_SELECT, which seems broken under R5, the results compare nicely now.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26075 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f7e1df75609966bdfdb4ed39edf26dd145d8221f 16-Aug-2007 Stephan Aßmus <superstippi@gmx.de>

* get rid of RGBColor usage where it is not needed, this simplified many things,
possibly making them a little faster too
* mess with decorator button size calculation to make the whole layout scale
more agreeable with the font size (no more fixed offsets/insets), but it
is work in progress
* DefaultDecorator no longer allocated the border color array, it is part of
the object now
* small memory footprint optimizations in ViewLayer, Decorator and WindowLayer


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22003 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38f9b78d6c8be260a7027302f30f07fa8e5ecb28 05-Jul-2006 Jérôme Duval <korli@users.berlios.de>

seems I was wrong here : no overflow happens since the comparison is done on the fly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18041 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63e9b45d9d735e2049434a771df3e2075c5699e1 04-Jul-2006 Jérôme Duval <korli@users.berlios.de>

tentative fix for B_OP_ADD


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18039 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e39da397f5ff79f2db9f9a3ddf1852b6710578af 14-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

* long overdue update to AGG 2.4
* removed the useless parts of AGG (which are only needed for the
interactive examples)
* make sure to jam -a libagg.a to solve any linking issues


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17838 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9d909e25560c098447fd4dddbed7ed48ae8c9748 25-Dec-2005 Stephan Aßmus <superstippi@gmx.de>

first simplistic implementation of drag bitmaps, drawing modes need more work, drawing text into offscreen bitmaps seems to be broken for some weird reason, B_OP_COPY actually copies the alpha value of the color as well

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8d7b8e8ce7897d4e98ac96f07e84cf92f4066cf5 19-Dec-2005 Stephan Aßmus <superstippi@gmx.de>

complete rework of the drawing_modes implementation... I achieved a speedup of 8 to 9 times, tested with text rendering. Believe it or not, but the Haiku text rendering is now faster than R5 for B_OP_COPY at least. And there is quite some room for improvement yet. (faster text bounding box calculation, avoiding the double UTF8 conversion, etc)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15596 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 74994d1307d9898fcc7c52ac176911895d837901 25-May-2005 Stephan Aßmus <superstippi@gmx.de>

added license headers

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12817 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0fe8a07c960b06325099bb14ee09a6267c35e8e 25-Mar-2005 Stephan Aßmus <superstippi@gmx.de>

moved Painter into drawing

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11989 a95241bf-73f2-0310-859d-f6bbb57e9c96