gst-indent
[platform/upstream/gst-plugins-good.git] / gst / goom / filters.h
1 #ifndef FILTERS_H
2 #define FILTERS_H
3
4 #include <glib.h>
5
6 #include "graphic.h"
7
8 typedef struct
9 {
10   int vitesse;
11   unsigned char pertedec;
12   unsigned char sqrtperte;
13   int middleX, middleY;
14   char reverse;
15   char mode;
16         /** @since June 2001 */
17   int hPlaneEffect;
18   int vPlaneEffect;
19   char noisify;
20 } ZoomFilterData;
21
22
23 #define NORMAL_MODE 0
24 #define WAVE_MODE 1
25 #define CRYSTAL_BALL_MODE 2
26 #define SCRUNCH_MODE 3
27 #define AMULETTE_MODE 4
28 #define WATER_MODE 5
29
30 void pointFilter (guint32 * pix1, Color c,
31     float t1, float t2, float t3, float t4, guint32 cycle);
32
33 /* filtre de zoom :
34  le contenu de pix1 est copie dans pix2, avec l'effet appliqué
35  midx et midy represente le centre du zoom
36
37 void zoomFilter(Uint *pix1, Uint *pix2, Uint middleX, Uint middleY);
38 void zoomFilterRGB(Uint *pix1,
39 Uint *pix2,
40 Uint middleX,
41 Uint middleY);
42 */
43
44 void zoomFilterFastRGB (guint32 * pix1,
45     guint32 * pix2, ZoomFilterData * zf, guint32 resx, guint32 resy);
46
47
48 /* filtre sin :
49  le contenu de pix1 est copie dans pix2, avec l'effet appliqué
50  cycle est la variable de temps.
51  mode vaut SIN_MUL ou SIN_ADD
52  rate est le pourcentage de l'effet appliqué
53  lenght : la longueur d'onde (1..10) [5]
54  speed : la vitesse (1..100) [10]
55 */
56 /*
57 void sinFilter(Uint *pix1,Uint *pix2,
58                            Uint cycle,
59                            Uint mode,
60                            Uint rate,
61                            char lenght,
62                            Uint speed);
63 */
64
65 #define SIN_MUL 1
66 #define SIN_ADD 2
67
68 #endif