From f85065f15b5d4521ae57857aaafcdeb8fbc3bdb7 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 13 Mar 2013 20:50:39 +0100 Subject: Add clear method. Fixed alpha bleding (again). --- plugingui/pixelbuffer.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'plugingui/pixelbuffer.cc') diff --git a/plugingui/pixelbuffer.cc b/plugingui/pixelbuffer.cc index e9e376a..c0dc2cc 100644 --- a/plugingui/pixelbuffer.cc +++ b/plugingui/pixelbuffer.cc @@ -114,7 +114,11 @@ void GUI::PixelBufferAlpha::addPixel(size_t x, size_t y, buf[PX(2)] = (unsigned char)(blue * a + buf[PX(2)] * (1-a)); //buf[PX(3)] = (unsigned char)(alpha * a + buf[PX(3)] * (1-a)); - buf[PX(3)] = alpha>buf[PX(3)]?alpha:buf[PX(3)]; + //buf[PX(3)] = alpha>buf[PX(3)]?alpha:buf[PX(3)]; + + float a1 = (float)buf[PX(3)] / 255.0; + float a2 = (float)alpha / 255.0; + buf[PX(3)] = (a1 + ((1 - a1) * a2)) * 255.0; } void GUI::PixelBufferAlpha::pixel(size_t x, size_t y, -- cgit v1.2.3