diff --git a/repos/os/include/os/pixel_alpha8.h b/repos/os/include/os/pixel_alpha8.h new file mode 100644 index 000000000..b0dc43f03 --- /dev/null +++ b/repos/os/include/os/pixel_alpha8.h @@ -0,0 +1,39 @@ +/* + * \brief Template specializations for the ALPHA8 pixel format + * \author Norman Feske + * \date 2014-09-10 + */ + +/* + * Copyright (C) 2014 Genode Labs GmbH + * + * This file is part of the Genode OS framework, which is distributed + * under the terms of the GNU General Public License version 2. + */ + +#ifndef _INCLUDE__OS__PIXEL_ALPHA8_H_ +#define _INCLUDE__OS__PIXEL_ALPHA8_H_ + +#include + +namespace Genode { + + typedef Genode::Pixel_rgba + Pixel_alpha8; + + + /* + * The second pixel parameter is ignored. It can be of any pixel type. + */ + template <> + template + inline Pixel_alpha8 Pixel_alpha8::mix(Pixel_alpha8 p1, PT, int alpha) + { + Pixel_alpha8 res; + res.pixel = p1.pixel + (((255 - p1.pixel)*alpha) >> 8); + return res; + } +} + +#endif /* _INCLUDE__OS__PIXEL_ALPHA8_H_ */ diff --git a/repos/os/include/os/surface.h b/repos/os/include/os/surface.h index 68538527a..b0ec88a2d 100644 --- a/repos/os/include/os/surface.h +++ b/repos/os/include/os/surface.h @@ -37,7 +37,7 @@ class Genode::Surface_base typedef Genode::Rect<> Rect; typedef Genode::Color Color; - enum Pixel_format { UNKNOWN, RGB565, RGB888 }; + enum Pixel_format { UNKNOWN, RGB565, RGB888, ALPHA8 }; struct Flusher {