Index: uspace/drv/fb/amdm37x_dispc/meson.build
===================================================================
--- uspace/drv/fb/amdm37x_dispc/meson.build	(revision 4b06a70665ed477f83132010ee910b572ab27028)
+++ uspace/drv/fb/amdm37x_dispc/meson.build	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
@@ -29,4 +29,4 @@
 #
 
-deps = [ 'gfx', 'ipcgfx', 'ddev', 'softrend' ]
+deps = [ 'gfx', 'ipcgfx', 'ddev', 'pixconv' ]
 src = files('amdm37x_dispc.c', 'main.c')
Index: uspace/drv/fb/kfb/meson.build
===================================================================
--- uspace/drv/fb/kfb/meson.build	(revision 4b06a70665ed477f83132010ee910b572ab27028)
+++ uspace/drv/fb/kfb/meson.build	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
@@ -29,4 +29,4 @@
 #
 
-deps = [ 'gfx', 'ipcgfx', 'ddev', 'softrend' ]
+deps = [ 'gfx', 'ipcgfx', 'ddev', 'pixconv' ]
 src = files('port.c', 'kfb.c')
Index: uspace/lib/gfximage/meson.build
===================================================================
--- uspace/lib/gfximage/meson.build	(revision 4b06a70665ed477f83132010ee910b572ab27028)
+++ uspace/lib/gfximage/meson.build	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
@@ -27,5 +27,5 @@
 #
 
-deps = [ 'gfx', 'softrend' , 'compress' ]
+deps = [ 'gfx', 'pixconv' , 'compress' ]
 src = files(
 	'src/tga.c',
Index: uspace/lib/meson.build
===================================================================
--- uspace/lib/meson.build	(revision 4b06a70665ed477f83132010ee910b572ab27028)
+++ uspace/lib/meson.build	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
@@ -34,5 +34,5 @@
 	'math',
 	'display',
-	'softrend',
+	'pixconv',
 	'posix',
 	'clui',
@@ -68,9 +68,9 @@
 	'pcm',
 	'pcut',
+	'pixconv',
 	'posix',
 	'riff',
 	'scsi',
 	'sif',
-	'softrend',
 	'trackmod',
 	'untar',
Index: uspace/lib/pixconv/doc/doxygroups.h
===================================================================
--- uspace/lib/pixconv/doc/doxygroups.h	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
+++ uspace/lib/pixconv/doc/doxygroups.h	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
@@ -0,0 +1,3 @@
+/** @addtogroup softrend libsoftrend
+ * @ingroup libs
+ */
Index: uspace/lib/pixconv/meson.build
===================================================================
--- uspace/lib/pixconv/meson.build	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
+++ uspace/lib/pixconv/meson.build	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2011 Petr Koupy
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+#   derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+src = files(
+	'pixconv.c',
+)
Index: uspace/lib/pixconv/pixconv.c
===================================================================
--- uspace/lib/pixconv/pixconv.c	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
+++ uspace/lib/pixconv/pixconv.c	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
@@ -0,0 +1,287 @@
+/*
+ * Copyright (c) 2011 Martin Decky
+ * Copyright (c) 2011 Petr Koupy
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup softrend
+ * @{
+ */
+/**
+ * @file Pixel conversion and mask functions.
+ *
+ * These functions write an ARGB pixel value to a memory location
+ * in a predefined format. The naming convention corresponds to
+ * the names of the visuals and the format created by these functions.
+ * The functions use the so called network bit order (i.e. big endian)
+ * with respect to their names.
+ */
+
+#include <byteorder.h>
+#include "pixconv.h"
+
+void pixel2argb_8888(void *dst, pixel_t pix)
+{
+	*((uint32_t *) dst) = host2uint32_t_be(
+	    (ALPHA(pix) << 24) | (RED(pix) << 16) | (GREEN(pix) << 8) | (BLUE(pix)));
+}
+
+void pixel2abgr_8888(void *dst, pixel_t pix)
+{
+	*((uint32_t *) dst) = host2uint32_t_be(
+	    (ALPHA(pix) << 24) | (BLUE(pix) << 16) | (GREEN(pix) << 8) | (RED(pix)));
+}
+
+void pixel2rgba_8888(void *dst, pixel_t pix)
+{
+	*((uint32_t *) dst) = host2uint32_t_be(
+	    (RED(pix) << 24) | (GREEN(pix) << 16) | (BLUE(pix) << 8) | (ALPHA(pix)));
+}
+
+void pixel2bgra_8888(void *dst, pixel_t pix)
+{
+	*((uint32_t *) dst) = host2uint32_t_be(
+	    (BLUE(pix) << 24) | (GREEN(pix) << 16) | (RED(pix) << 8) | (ALPHA(pix)));
+}
+
+void pixel2rgb_0888(void *dst, pixel_t pix)
+{
+	*((uint32_t *) dst) = host2uint32_t_be(
+	    (RED(pix) << 16) | (GREEN(pix) << 8) | (BLUE(pix)));
+}
+
+void pixel2bgr_0888(void *dst, pixel_t pix)
+{
+	*((uint32_t *) dst) = host2uint32_t_be(
+	    (BLUE(pix) << 16) | (GREEN(pix) << 8) | (RED(pix)));
+}
+
+void pixel2rgb_8880(void *dst, pixel_t pix)
+{
+	*((uint32_t *) dst) = host2uint32_t_be(
+	    (RED(pix) << 24) | (GREEN(pix) << 16) | (BLUE(pix) << 8));
+}
+
+void pixel2bgr_8880(void *dst, pixel_t pix)
+{
+	*((uint32_t *) dst) = host2uint32_t_be(
+	    (BLUE(pix) << 24) | (GREEN(pix) << 16) | (RED(pix) << 8));
+}
+
+void pixel2rgb_888(void *dst, pixel_t pix)
+{
+	((uint8_t *) dst)[0] = RED(pix);
+	((uint8_t *) dst)[1] = GREEN(pix);
+	((uint8_t *) dst)[2] = BLUE(pix);
+}
+
+void pixel2bgr_888(void *dst, pixel_t pix)
+{
+	((uint8_t *) dst)[0] = BLUE(pix);
+	((uint8_t *) dst)[1] = GREEN(pix);
+	((uint8_t *) dst)[2] = RED(pix);
+}
+
+void pixel2rgb_555_be(void *dst, pixel_t pix)
+{
+	*((uint16_t *) dst) = host2uint16_t_be(
+	    (NARROW(RED(pix), 5) << 10) | (NARROW(GREEN(pix), 5) << 5) | (NARROW(BLUE(pix), 5)));
+}
+
+void pixel2rgb_555_le(void *dst, pixel_t pix)
+{
+	*((uint16_t *) dst) = host2uint16_t_le(
+	    (NARROW(RED(pix), 5) << 10) | (NARROW(GREEN(pix), 5) << 5) | (NARROW(BLUE(pix), 5)));
+}
+
+void pixel2rgb_565_be(void *dst, pixel_t pix)
+{
+	*((uint16_t *) dst) = host2uint16_t_be(
+	    (NARROW(RED(pix), 5) << 11) | (NARROW(GREEN(pix), 6) << 5) | (NARROW(BLUE(pix), 5)));
+}
+
+void pixel2rgb_565_le(void *dst, pixel_t pix)
+{
+	*((uint16_t *) dst) = host2uint16_t_le(
+	    (NARROW(RED(pix), 5) << 11) | (NARROW(GREEN(pix), 6) << 5) | (NARROW(BLUE(pix), 5)));
+}
+
+void pixel2bgr_323(void *dst, pixel_t pix)
+{
+	*((uint8_t *) dst) =
+	    ~((NARROW(RED(pix), 3) << 5) | (NARROW(GREEN(pix), 2) << 3) | NARROW(BLUE(pix), 3));
+}
+
+void pixel2gray_8(void *dst, pixel_t pix)
+{
+	uint32_t red = RED(pix) * 5034375;
+	uint32_t green = GREEN(pix) * 9886846;
+	uint32_t blue = BLUE(pix) * 1920103;
+
+	*((uint8_t *) dst) = (red + green + blue) >> 24;
+}
+
+void visual_mask_8888(void *dst, bool mask)
+{
+	pixel2abgr_8888(dst, mask ? 0xffffffff : 0);
+}
+
+void visual_mask_0888(void *dst, bool mask)
+{
+	pixel2bgr_0888(dst, mask ? 0xffffffff : 0);
+}
+
+void visual_mask_8880(void *dst, bool mask)
+{
+	pixel2bgr_8880(dst, mask ? 0xffffffff : 0);
+}
+
+void visual_mask_888(void *dst, bool mask)
+{
+	pixel2bgr_888(dst, mask ? 0xffffffff : 0);
+}
+
+void visual_mask_555(void *dst, bool mask)
+{
+	pixel2rgb_555_be(dst, mask ? 0xffffffff : 0);
+}
+
+void visual_mask_565(void *dst, bool mask)
+{
+	pixel2rgb_565_be(dst, mask ? 0xffffffff : 0);
+}
+
+void visual_mask_323(void *dst, bool mask)
+{
+	pixel2bgr_323(dst, mask ? 0x0 : ~0x0);
+}
+
+void visual_mask_8(void *dst, bool mask)
+{
+	pixel2gray_8(dst, mask ? 0xffffffff : 0);
+}
+
+pixel_t argb_8888_2pixel(void *src)
+{
+	return (uint32_t_be2host(*((uint32_t *) src)));
+}
+
+pixel_t abgr_8888_2pixel(void *src)
+{
+	uint32_t val = uint32_t_be2host(*((uint32_t *) src));
+	return ((val & 0xff000000) | ((val & 0xff0000) >> 16) | (val & 0xff00) | ((val & 0xff) << 16));
+}
+
+pixel_t rgba_8888_2pixel(void *src)
+{
+	uint32_t val = uint32_t_be2host(*((uint32_t *) src));
+	return ((val << 24) | (val >> 8));
+}
+
+pixel_t bgra_8888_2pixel(void *src)
+{
+	uint32_t val = uint32_t_be2host(*((uint32_t *) src));
+	return ((val >> 24) | ((val & 0xff0000) >> 8) | ((val & 0xff00) << 8) | (val << 24));
+}
+
+pixel_t rgb_0888_2pixel(void *src)
+{
+	return (0xff000000 | (uint32_t_be2host(*((uint32_t *) src)) & 0xffffff));
+}
+
+pixel_t bgr_0888_2pixel(void *src)
+{
+	uint32_t val = uint32_t_be2host(*((uint32_t *) src));
+	return (0xff000000 | ((val & 0xff0000) >> 16) | (val & 0xff00) | ((val & 0xff) << 16));
+}
+
+pixel_t rgb_8880_2pixel(void *src)
+{
+	return (0xff000000 | (uint32_t_be2host(*((uint32_t *) src)) >> 8));
+}
+
+pixel_t bgr_8880_2pixel(void *src)
+{
+	uint32_t val = uint32_t_be2host(*((uint32_t *) src));
+	return (0xff000000 | (val >> 24) | ((val & 0xff0000) >> 8) | ((val & 0xff00) << 8));
+}
+
+pixel_t rgb_888_2pixel(void *src)
+{
+	uint8_t red = ((uint8_t *) src)[0];
+	uint8_t green = ((uint8_t *) src)[1];
+	uint8_t blue = ((uint8_t *) src)[2];
+
+	return (0xff000000 | (red << 16) | (green << 8) | (blue));
+}
+
+pixel_t bgr_888_2pixel(void *src)
+{
+	uint8_t blue = ((uint8_t *) src)[0];
+	uint8_t green = ((uint8_t *) src)[1];
+	uint8_t red = ((uint8_t *) src)[2];
+
+	return (0xff000000 | (red << 16) | (green << 8) | (blue));
+}
+
+pixel_t rgb_555_be_2pixel(void *src)
+{
+	uint16_t val = uint16_t_be2host(*((uint16_t *) src));
+	return (0xff000000 | ((val & 0x7c00) << 9) | ((val & 0x3e0) << 6) | ((val & 0x1f) << 3));
+}
+
+pixel_t rgb_555_le_2pixel(void *src)
+{
+	uint16_t val = uint16_t_le2host(*((uint16_t *) src));
+	return (0xff000000 | ((val & 0x7c00) << 9) | ((val & 0x3e0) << 6) | ((val & 0x1f) << 3));
+}
+
+pixel_t rgb_565_be_2pixel(void *src)
+{
+	uint16_t val = uint16_t_be2host(*((uint16_t *) src));
+	return (0xff000000 | ((val & 0xf800) << 8) | ((val & 0x7e0) << 5) | ((val & 0x1f) << 3));
+}
+
+pixel_t rgb_565_le_2pixel(void *src)
+{
+	uint16_t val = uint16_t_le2host(*((uint16_t *) src));
+	return (0xff000000 | ((val & 0xf800) << 8) | ((val & 0x7e0) << 5) | ((val & 0x1f) << 3));
+}
+
+pixel_t bgr_323_2pixel(void *src)
+{
+	uint8_t val = ~(*((uint8_t *) src));
+	return (0xff000000 | ((val & 0xe0) << 16) | ((val & 0x18) << 11) | ((val & 0x7) << 5));
+}
+
+pixel_t gray_8_2pixel(void *src)
+{
+	uint8_t val = *((uint8_t *) src);
+	return (0xff000000 | (val << 16) | (val << 8) | (val));
+}
+
+/** @}
+ */
Index: uspace/lib/pixconv/pixconv.h
===================================================================
--- uspace/lib/pixconv/pixconv.h	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
+++ uspace/lib/pixconv/pixconv.h	(revision 0d3bc7b18dd4e17da1e80e200d0dcf5df656f675)
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2011 Martin Decky
+ * Copyright (c) 2011 Petr Koupy
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup softrend
+ * @{
+ */
+/**
+ * @file
+ */
+
+#ifndef SOFTREND_PIXCONV_H_
+#define SOFTREND_PIXCONV_H_
+
+#include <stdbool.h>
+#include <io/pixel.h>
+
+/** Function to render a pixel. */
+typedef void (*pixel2visual_t)(void *, pixel_t);
+
+/** Function to render a bit mask. */
+typedef void (*visual_mask_t)(void *, bool);
+
+/** Function to retrieve a pixel. */
+typedef pixel_t (*visual2pixel_t)(void *);
+
+extern void pixel2argb_8888(void *, pixel_t);
+extern void pixel2abgr_8888(void *, pixel_t);
+extern void pixel2rgba_8888(void *, pixel_t);
+extern void pixel2bgra_8888(void *, pixel_t);
+extern void pixel2rgb_0888(void *, pixel_t);
+extern void pixel2bgr_0888(void *, pixel_t);
+extern void pixel2rgb_8880(void *, pixel_t);
+extern void pixel2bgr_8880(void *, pixel_t);
+extern void pixel2rgb_888(void *, pixel_t);
+extern void pixel2bgr_888(void *, pixel_t);
+extern void pixel2rgb_555_be(void *, pixel_t);
+extern void pixel2rgb_555_le(void *, pixel_t);
+extern void pixel2rgb_565_be(void *, pixel_t);
+extern void pixel2rgb_565_le(void *, pixel_t);
+extern void pixel2bgr_323(void *, pixel_t);
+extern void pixel2gray_8(void *, pixel_t);
+
+extern void visual_mask_8888(void *, bool);
+extern void visual_mask_0888(void *, bool);
+extern void visual_mask_8880(void *, bool);
+extern void visual_mask_888(void *, bool);
+extern void visual_mask_555(void *, bool);
+extern void visual_mask_565(void *, bool);
+extern void visual_mask_323(void *, bool);
+extern void visual_mask_8(void *, bool);
+
+extern pixel_t argb_8888_2pixel(void *);
+extern pixel_t abgr_8888_2pixel(void *);
+extern pixel_t rgba_8888_2pixel(void *);
+extern pixel_t bgra_8888_2pixel(void *);
+extern pixel_t rgb_0888_2pixel(void *);
+extern pixel_t bgr_0888_2pixel(void *);
+extern pixel_t rgb_8880_2pixel(void *);
+extern pixel_t bgr_8880_2pixel(void *);
+extern pixel_t rgb_888_2pixel(void *);
+extern pixel_t bgr_888_2pixel(void *);
+extern pixel_t rgb_555_be_2pixel(void *);
+extern pixel_t rgb_555_le_2pixel(void *);
+extern pixel_t rgb_565_be_2pixel(void *);
+extern pixel_t rgb_565_le_2pixel(void *);
+extern pixel_t bgr_323_2pixel(void *);
+extern pixel_t gray_8_2pixel(void *);
+
+#endif
+
+/** @}
+ */
Index: pace/lib/softrend/doc/doxygroups.h
===================================================================
--- uspace/lib/softrend/doc/doxygroups.h	(revision 4b06a70665ed477f83132010ee910b572ab27028)
+++ 	(revision )
@@ -1,3 +1,0 @@
-/** @addtogroup softrend libsoftrend
- * @ingroup libs
- */
Index: pace/lib/softrend/meson.build
===================================================================
--- uspace/lib/softrend/meson.build	(revision 4b06a70665ed477f83132010ee910b572ab27028)
+++ 	(revision )
@@ -1,31 +1,0 @@
-#
-# Copyright (c) 2011 Petr Koupy
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# - Redistributions of source code must retain the above copyright
-#   notice, this list of conditions and the following disclaimer.
-# - Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# - The name of the author may not be used to endorse or promote products
-#   derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-src = files(
-	'pixconv.c',
-)
Index: pace/lib/softrend/pixconv.c
===================================================================
--- uspace/lib/softrend/pixconv.c	(revision 4b06a70665ed477f83132010ee910b572ab27028)
+++ 	(revision )
@@ -1,287 +1,0 @@
-/*
- * Copyright (c) 2011 Martin Decky
- * Copyright (c) 2011 Petr Koupy
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup softrend
- * @{
- */
-/**
- * @file Pixel conversion and mask functions.
- *
- * These functions write an ARGB pixel value to a memory location
- * in a predefined format. The naming convention corresponds to
- * the names of the visuals and the format created by these functions.
- * The functions use the so called network bit order (i.e. big endian)
- * with respect to their names.
- */
-
-#include <byteorder.h>
-#include "pixconv.h"
-
-void pixel2argb_8888(void *dst, pixel_t pix)
-{
-	*((uint32_t *) dst) = host2uint32_t_be(
-	    (ALPHA(pix) << 24) | (RED(pix) << 16) | (GREEN(pix) << 8) | (BLUE(pix)));
-}
-
-void pixel2abgr_8888(void *dst, pixel_t pix)
-{
-	*((uint32_t *) dst) = host2uint32_t_be(
-	    (ALPHA(pix) << 24) | (BLUE(pix) << 16) | (GREEN(pix) << 8) | (RED(pix)));
-}
-
-void pixel2rgba_8888(void *dst, pixel_t pix)
-{
-	*((uint32_t *) dst) = host2uint32_t_be(
-	    (RED(pix) << 24) | (GREEN(pix) << 16) | (BLUE(pix) << 8) | (ALPHA(pix)));
-}
-
-void pixel2bgra_8888(void *dst, pixel_t pix)
-{
-	*((uint32_t *) dst) = host2uint32_t_be(
-	    (BLUE(pix) << 24) | (GREEN(pix) << 16) | (RED(pix) << 8) | (ALPHA(pix)));
-}
-
-void pixel2rgb_0888(void *dst, pixel_t pix)
-{
-	*((uint32_t *) dst) = host2uint32_t_be(
-	    (RED(pix) << 16) | (GREEN(pix) << 8) | (BLUE(pix)));
-}
-
-void pixel2bgr_0888(void *dst, pixel_t pix)
-{
-	*((uint32_t *) dst) = host2uint32_t_be(
-	    (BLUE(pix) << 16) | (GREEN(pix) << 8) | (RED(pix)));
-}
-
-void pixel2rgb_8880(void *dst, pixel_t pix)
-{
-	*((uint32_t *) dst) = host2uint32_t_be(
-	    (RED(pix) << 24) | (GREEN(pix) << 16) | (BLUE(pix) << 8));
-}
-
-void pixel2bgr_8880(void *dst, pixel_t pix)
-{
-	*((uint32_t *) dst) = host2uint32_t_be(
-	    (BLUE(pix) << 24) | (GREEN(pix) << 16) | (RED(pix) << 8));
-}
-
-void pixel2rgb_888(void *dst, pixel_t pix)
-{
-	((uint8_t *) dst)[0] = RED(pix);
-	((uint8_t *) dst)[1] = GREEN(pix);
-	((uint8_t *) dst)[2] = BLUE(pix);
-}
-
-void pixel2bgr_888(void *dst, pixel_t pix)
-{
-	((uint8_t *) dst)[0] = BLUE(pix);
-	((uint8_t *) dst)[1] = GREEN(pix);
-	((uint8_t *) dst)[2] = RED(pix);
-}
-
-void pixel2rgb_555_be(void *dst, pixel_t pix)
-{
-	*((uint16_t *) dst) = host2uint16_t_be(
-	    (NARROW(RED(pix), 5) << 10) | (NARROW(GREEN(pix), 5) << 5) | (NARROW(BLUE(pix), 5)));
-}
-
-void pixel2rgb_555_le(void *dst, pixel_t pix)
-{
-	*((uint16_t *) dst) = host2uint16_t_le(
-	    (NARROW(RED(pix), 5) << 10) | (NARROW(GREEN(pix), 5) << 5) | (NARROW(BLUE(pix), 5)));
-}
-
-void pixel2rgb_565_be(void *dst, pixel_t pix)
-{
-	*((uint16_t *) dst) = host2uint16_t_be(
-	    (NARROW(RED(pix), 5) << 11) | (NARROW(GREEN(pix), 6) << 5) | (NARROW(BLUE(pix), 5)));
-}
-
-void pixel2rgb_565_le(void *dst, pixel_t pix)
-{
-	*((uint16_t *) dst) = host2uint16_t_le(
-	    (NARROW(RED(pix), 5) << 11) | (NARROW(GREEN(pix), 6) << 5) | (NARROW(BLUE(pix), 5)));
-}
-
-void pixel2bgr_323(void *dst, pixel_t pix)
-{
-	*((uint8_t *) dst) =
-	    ~((NARROW(RED(pix), 3) << 5) | (NARROW(GREEN(pix), 2) << 3) | NARROW(BLUE(pix), 3));
-}
-
-void pixel2gray_8(void *dst, pixel_t pix)
-{
-	uint32_t red = RED(pix) * 5034375;
-	uint32_t green = GREEN(pix) * 9886846;
-	uint32_t blue = BLUE(pix) * 1920103;
-
-	*((uint8_t *) dst) = (red + green + blue) >> 24;
-}
-
-void visual_mask_8888(void *dst, bool mask)
-{
-	pixel2abgr_8888(dst, mask ? 0xffffffff : 0);
-}
-
-void visual_mask_0888(void *dst, bool mask)
-{
-	pixel2bgr_0888(dst, mask ? 0xffffffff : 0);
-}
-
-void visual_mask_8880(void *dst, bool mask)
-{
-	pixel2bgr_8880(dst, mask ? 0xffffffff : 0);
-}
-
-void visual_mask_888(void *dst, bool mask)
-{
-	pixel2bgr_888(dst, mask ? 0xffffffff : 0);
-}
-
-void visual_mask_555(void *dst, bool mask)
-{
-	pixel2rgb_555_be(dst, mask ? 0xffffffff : 0);
-}
-
-void visual_mask_565(void *dst, bool mask)
-{
-	pixel2rgb_565_be(dst, mask ? 0xffffffff : 0);
-}
-
-void visual_mask_323(void *dst, bool mask)
-{
-	pixel2bgr_323(dst, mask ? 0x0 : ~0x0);
-}
-
-void visual_mask_8(void *dst, bool mask)
-{
-	pixel2gray_8(dst, mask ? 0xffffffff : 0);
-}
-
-pixel_t argb_8888_2pixel(void *src)
-{
-	return (uint32_t_be2host(*((uint32_t *) src)));
-}
-
-pixel_t abgr_8888_2pixel(void *src)
-{
-	uint32_t val = uint32_t_be2host(*((uint32_t *) src));
-	return ((val & 0xff000000) | ((val & 0xff0000) >> 16) | (val & 0xff00) | ((val & 0xff) << 16));
-}
-
-pixel_t rgba_8888_2pixel(void *src)
-{
-	uint32_t val = uint32_t_be2host(*((uint32_t *) src));
-	return ((val << 24) | (val >> 8));
-}
-
-pixel_t bgra_8888_2pixel(void *src)
-{
-	uint32_t val = uint32_t_be2host(*((uint32_t *) src));
-	return ((val >> 24) | ((val & 0xff0000) >> 8) | ((val & 0xff00) << 8) | (val << 24));
-}
-
-pixel_t rgb_0888_2pixel(void *src)
-{
-	return (0xff000000 | (uint32_t_be2host(*((uint32_t *) src)) & 0xffffff));
-}
-
-pixel_t bgr_0888_2pixel(void *src)
-{
-	uint32_t val = uint32_t_be2host(*((uint32_t *) src));
-	return (0xff000000 | ((val & 0xff0000) >> 16) | (val & 0xff00) | ((val & 0xff) << 16));
-}
-
-pixel_t rgb_8880_2pixel(void *src)
-{
-	return (0xff000000 | (uint32_t_be2host(*((uint32_t *) src)) >> 8));
-}
-
-pixel_t bgr_8880_2pixel(void *src)
-{
-	uint32_t val = uint32_t_be2host(*((uint32_t *) src));
-	return (0xff000000 | (val >> 24) | ((val & 0xff0000) >> 8) | ((val & 0xff00) << 8));
-}
-
-pixel_t rgb_888_2pixel(void *src)
-{
-	uint8_t red = ((uint8_t *) src)[0];
-	uint8_t green = ((uint8_t *) src)[1];
-	uint8_t blue = ((uint8_t *) src)[2];
-
-	return (0xff000000 | (red << 16) | (green << 8) | (blue));
-}
-
-pixel_t bgr_888_2pixel(void *src)
-{
-	uint8_t blue = ((uint8_t *) src)[0];
-	uint8_t green = ((uint8_t *) src)[1];
-	uint8_t red = ((uint8_t *) src)[2];
-
-	return (0xff000000 | (red << 16) | (green << 8) | (blue));
-}
-
-pixel_t rgb_555_be_2pixel(void *src)
-{
-	uint16_t val = uint16_t_be2host(*((uint16_t *) src));
-	return (0xff000000 | ((val & 0x7c00) << 9) | ((val & 0x3e0) << 6) | ((val & 0x1f) << 3));
-}
-
-pixel_t rgb_555_le_2pixel(void *src)
-{
-	uint16_t val = uint16_t_le2host(*((uint16_t *) src));
-	return (0xff000000 | ((val & 0x7c00) << 9) | ((val & 0x3e0) << 6) | ((val & 0x1f) << 3));
-}
-
-pixel_t rgb_565_be_2pixel(void *src)
-{
-	uint16_t val = uint16_t_be2host(*((uint16_t *) src));
-	return (0xff000000 | ((val & 0xf800) << 8) | ((val & 0x7e0) << 5) | ((val & 0x1f) << 3));
-}
-
-pixel_t rgb_565_le_2pixel(void *src)
-{
-	uint16_t val = uint16_t_le2host(*((uint16_t *) src));
-	return (0xff000000 | ((val & 0xf800) << 8) | ((val & 0x7e0) << 5) | ((val & 0x1f) << 3));
-}
-
-pixel_t bgr_323_2pixel(void *src)
-{
-	uint8_t val = ~(*((uint8_t *) src));
-	return (0xff000000 | ((val & 0xe0) << 16) | ((val & 0x18) << 11) | ((val & 0x7) << 5));
-}
-
-pixel_t gray_8_2pixel(void *src)
-{
-	uint8_t val = *((uint8_t *) src);
-	return (0xff000000 | (val << 16) | (val << 8) | (val));
-}
-
-/** @}
- */
Index: pace/lib/softrend/pixconv.h
===================================================================
--- uspace/lib/softrend/pixconv.h	(revision 4b06a70665ed477f83132010ee910b572ab27028)
+++ 	(revision )
@@ -1,98 +1,0 @@
-/*
- * Copyright (c) 2011 Martin Decky
- * Copyright (c) 2011 Petr Koupy
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup softrend
- * @{
- */
-/**
- * @file
- */
-
-#ifndef SOFTREND_PIXCONV_H_
-#define SOFTREND_PIXCONV_H_
-
-#include <stdbool.h>
-#include <io/pixel.h>
-
-/** Function to render a pixel. */
-typedef void (*pixel2visual_t)(void *, pixel_t);
-
-/** Function to render a bit mask. */
-typedef void (*visual_mask_t)(void *, bool);
-
-/** Function to retrieve a pixel. */
-typedef pixel_t (*visual2pixel_t)(void *);
-
-extern void pixel2argb_8888(void *, pixel_t);
-extern void pixel2abgr_8888(void *, pixel_t);
-extern void pixel2rgba_8888(void *, pixel_t);
-extern void pixel2bgra_8888(void *, pixel_t);
-extern void pixel2rgb_0888(void *, pixel_t);
-extern void pixel2bgr_0888(void *, pixel_t);
-extern void pixel2rgb_8880(void *, pixel_t);
-extern void pixel2bgr_8880(void *, pixel_t);
-extern void pixel2rgb_888(void *, pixel_t);
-extern void pixel2bgr_888(void *, pixel_t);
-extern void pixel2rgb_555_be(void *, pixel_t);
-extern void pixel2rgb_555_le(void *, pixel_t);
-extern void pixel2rgb_565_be(void *, pixel_t);
-extern void pixel2rgb_565_le(void *, pixel_t);
-extern void pixel2bgr_323(void *, pixel_t);
-extern void pixel2gray_8(void *, pixel_t);
-
-extern void visual_mask_8888(void *, bool);
-extern void visual_mask_0888(void *, bool);
-extern void visual_mask_8880(void *, bool);
-extern void visual_mask_888(void *, bool);
-extern void visual_mask_555(void *, bool);
-extern void visual_mask_565(void *, bool);
-extern void visual_mask_323(void *, bool);
-extern void visual_mask_8(void *, bool);
-
-extern pixel_t argb_8888_2pixel(void *);
-extern pixel_t abgr_8888_2pixel(void *);
-extern pixel_t rgba_8888_2pixel(void *);
-extern pixel_t bgra_8888_2pixel(void *);
-extern pixel_t rgb_0888_2pixel(void *);
-extern pixel_t bgr_0888_2pixel(void *);
-extern pixel_t rgb_8880_2pixel(void *);
-extern pixel_t bgr_8880_2pixel(void *);
-extern pixel_t rgb_888_2pixel(void *);
-extern pixel_t bgr_888_2pixel(void *);
-extern pixel_t rgb_555_be_2pixel(void *);
-extern pixel_t rgb_555_le_2pixel(void *);
-extern pixel_t rgb_565_be_2pixel(void *);
-extern pixel_t rgb_565_le_2pixel(void *);
-extern pixel_t bgr_323_2pixel(void *);
-extern pixel_t gray_8_2pixel(void *);
-
-#endif
-
-/** @}
- */
