Voila, j'ai fait une fonction pour filtrer les couleurs de l'écran en agissant sur les pixels.

Le principe est que je sélectionne les pixels du rectangle une par une puis j'y modifie sa couleur en fonction de ce que je veux.

Ca marche très bien mais le problème c'est que ca flingue mon FPS (c'est pour un jeu).

Est-ce que quelqu'un connaitrait une méthode pour faire la même chose mais BEAUCOUP plus rapidement.

Pour ceux qui voudront voir, voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
void PixelShader(HDC hDC, BYTE R, BYTE G, BYTE B, MODEFILTRAGE mode, RECT& zone)
{
	int x;
	int y;
	BYTE Red;
	BYTE Green;
	BYTE Blue;
	COLORREF cl;

	for &#40;y = zone.top ; y <= zone.bottom ; y++&#41;
		for &#40;x = zone.left ; x <= zone.right ; x++&#41;
		&#123;
			if &#40;mode == MF_RELATIF&#41;
			&#123;
				cl = GetPixel&#40;hDC, x, y&#41;;

				Red = 0x000000FF & cl;
				Green = 0x0000FF00 & cl;
				Blue = 0x00FF0000 & cl;

				Red = &#40;BYTE&#41;&#40;&#40;float&#41;Red * &#40;float&#41;R / 100&#41;;
				Green = &#40;BYTE&#41;&#40;&#40;float&#41;Green * &#40;float&#41;G / 100&#41;;
				Blue = &#40;BYTE&#41;&#40;&#40;float&#41;Blue * &#40;float&#41;B / 100&#41;;

				cl = RGB&#40;Red, Green, Blue&#41;;
			&#125;

			if &#40;mode == MF_ABSOLUT&#41;
				cl = RGB&#40;R, G, B&#41;;

			SetPixel&#40;hDC, x, y, cl&#41;;
		&#125;
&#125;
MODEFILTRAGE est un type que j'ai définit
MF_ABSOLUT modifie directement les couleurs du pixel avec celles entrées.
MF_RELATIF ne prend que le pourcentage de la couleur.

Merci d'avance