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