Tout d'abord, je suis très novice dans le domaine des pointeurs de fonction et de leur syntaxe horrible, donc jouez bien. J'écris une méthode pour filtrer tous les pixels de mon bitmap en fonction d'une fonction que je passe. J'ai écrit la méthode pour la déréférencer et l'appeler dans le buffer de pixels mais j'ai aussi besoin d'une méthode wrapper dans mon bitmap classe qui prend le pointeur de fonction et le transmet. Comment fait-on ça? Quelle est la syntaxe? Je suis un peu perplexe.Comment repasser un pointeur de fonction en C++
Voici mon code avec tous les bits non pertinents retirés et les fichiers combinés (lire toutes les variables initialisées remplies etc.).
struct sColour
{
unsigned char r, g, b, a;
};
class cPixelBuffer
{
private:
sColour* _pixels;
int _width;
int _height;
int _buffersize;
public:
void FilterAll(sColour (*FilterFunc)(sColour));
};
void cPixelBuffer::FilterAll(sColour (*FilterFunc)(sColour))
{
// fast fast fast hacky FAST
for (int i = 0; i < _buffersize; i++)
{
_pixels[i] = (*FilterFunc)(_pixels[i]);
}
}
class cBitmap
{
private:
cPixelBuffer* _pixels;
public:
inline void cBitmap::Filter(sColour (*FilterFunc)(sColour))
{
//HERE!!
}
};
Bonnes choses. Merci a tous. Par curiosité seulement, quelle aurait été la syntaxe si je l'avais passée sans le typedef? – User2400
@fneep: Quel typedef? – GManNickG