| #ifndef FILTERS_H |
| #define FILTERS_H |
| |
| #include <glib.h> |
| |
| #include "graphic.h" |
| #include "goom_core.h" |
| |
| #define NORMAL_MODE 0 |
| #define WAVE_MODE 1 |
| #define CRYSTAL_BALL_MODE 2 |
| #define SCRUNCH_MODE 3 |
| #define AMULETTE_MODE 4 |
| #define WATER_MODE 5 |
| |
| struct ZoomFilterData |
| { |
| int vitesse; |
| unsigned char pertedec; |
| unsigned char sqrtperte; |
| int middleX; |
| int middleY; |
| char reverse; |
| char mode; |
| /** @since June 2001 */ |
| int hPlaneEffect; |
| int vPlaneEffect; |
| char noisify; |
| |
| guint32 res_x; |
| guint32 res_y; |
| guint32 buffsize; |
| |
| guint32 *buffer; |
| guint32 *pos10; |
| guint32 *c[4]; |
| int *firedec; |
| |
| int wave; |
| int wavesp; |
| }; |
| |
| void pointFilter(GoomData *goomdata, Color c, |
| float t1, float t2, float t3, float t4, |
| guint32 cycle); |
| |
| /* filtre de zoom : |
| le contenu de pix1 est copie dans pix2, avec l'effet appliqué |
| midx et midy represente le centre du zoom |
| |
| void zoomFilter(Uint *pix1, Uint *pix2, Uint middleX, Uint middleY); |
| void zoomFilterRGB(Uint *pix1, |
| Uint *pix2, |
| Uint middleX, |
| Uint middleY); |
| */ |
| |
| ZoomFilterData *zoomFilterNew (void); |
| void zoomFilterDestroy (ZoomFilterData *zf); |
| void zoomFilterFastRGB (GoomData *goomdata, ZoomFilterData *zf, |
| int zfd_update); |
| |
| /* filtre sin : |
| le contenu de pix1 est copie dans pix2, avec l'effet appliqué |
| cycle est la variable de temps. |
| mode vaut SIN_MUL ou SIN_ADD |
| rate est le pourcentage de l'effet appliqué |
| lenght : la longueur d'onde (1..10) [5] |
| speed : la vitesse (1..100) [10] |
| */ |
| /* |
| void sinFilter(Uint *pix1,Uint *pix2, |
| Uint cycle, |
| Uint mode, |
| Uint rate, |
| char lenght, |
| Uint speed); |
| */ |
| |
| #define SIN_MUL 1 |
| #define SIN_ADD 2 |
| |
| #endif |