summaryrefslogtreecommitdiffstats
path: root/gst/goom/filters.h
blob: 33784c299913874a6cbb3cad7e2049d2d7f9bd11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#ifndef FILTERS_H
#define FILTERS_H

#include <glib.h>

#include "graphic.h"

typedef struct
{
	int vitesse ;
	unsigned char pertedec ;
	unsigned char sqrtperte ;
	int middleX,middleY ;
	char reverse ;
	char mode ;
	/** @since June 2001 */
	int hPlaneEffect ;
	int vPlaneEffect ;
	char noisify ;
} ZoomFilterData ;


#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

void pointFilter(guint32 *pix1, 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);
*/

void zoomFilterFastRGB (guint32 *pix1,
						guint32 *pix2,
						ZoomFilterData *zf,
						guint32 resx, guint32 resy);


/* 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