1 /*
2  * Image Scaling Functions
3  * Copyright (c) 2005 David A. Schleef <ds@schleef.org>
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
19  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25  * POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 #ifndef __VS_IMAGE_H__
29 #define __VS_IMAGE_H__
30 
31 #include <liboil/liboil-stdint.h>
32 
33 typedef struct _VSImage VSImage;
34 
35 struct _VSImage {
36   uint8_t *pixels;
37   int width;
38   int height;
39   int stride;
40 };
41 
42 void vs_image_scale_nearest_RGBA (const VSImage *dest, const VSImage *src,
43     uint8_t *tmpbuf);
44 void vs_image_scale_linear_RGBA (const VSImage *dest, const VSImage *src,
45     uint8_t *tmpbuf);
46 
47 void vs_image_scale_nearest_RGB (const VSImage *dest, const VSImage *src,
48     uint8_t *tmpbuf);
49 void vs_image_scale_linear_RGB (const VSImage *dest, const VSImage *src,
50     uint8_t *tmpbuf);
51 
52 void vs_image_scale_nearest_YUYV (const VSImage *dest, const VSImage *src,
53     uint8_t *tmpbuf);
54 void vs_image_scale_linear_YUYV (const VSImage *dest, const VSImage *src,
55     uint8_t *tmpbuf);
56 
57 void vs_image_scale_nearest_UYVY (const VSImage *dest, const VSImage *src,
58     uint8_t *tmpbuf);
59 void vs_image_scale_linear_UYVY (const VSImage *dest, const VSImage *src,
60     uint8_t *tmpbuf);
61 
62 void vs_image_scale_nearest_Y (const VSImage *dest, const VSImage *src,
63     uint8_t *tmpbuf);
64 void vs_image_scale_linear_Y (const VSImage *dest, const VSImage *src,
65     uint8_t *tmpbuf);
66 
67 void vs_image_scale_nearest_RGB565 (const VSImage *dest, const VSImage *src,
68     uint8_t *tmpbuf);
69 void vs_image_scale_linear_RGB565 (const VSImage *dest, const VSImage *src,
70     uint8_t *tmpbuf);
71 
72 void vs_image_scale_nearest_RGB555 (const VSImage *dest, const VSImage *src,
73     uint8_t *tmpbuf);
74 void vs_image_scale_linear_RGB555 (const VSImage *dest, const VSImage *src,
75     uint8_t *tmpbuf);
76 
77 #endif
78 
79