Во-первых, я очень плохо знаком с указателями на функции и их ужасным синтаксисом, так что играйте хорошо.
Я пишу метод для фильтрации всех пикселей в моем растровом изображении на основе функции, которую я передаю. Я написал метод для разыменования его и вызова в пиксельном буфере, но мне также нужен метод-обертка в моем растровом классе он берет указатель на функцию и передает его. Как мне это сделать? Какой синтаксис? Я немного озадачен.
Вот мой код со всеми несущественными битами и объединенными файлами (прочитать все инициализированные переменные, заполненные и т. Д.).
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!!
}
};