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