1 #ifndef LWPP_IMAGEFILTER_HANDLER_H
2 #define LWPP_IMAGEFILTER_HANDLER_H
88 void (*
process) (LWInstance,
const LWFilterAccess *);
89 int * (*flags) (LWInstance);
113 virtual void Process(
const LWFilterAccess *fa)
116 for (
int y = 0; y < fa->height; y++ )
124 for (
int x = 0; x < fa->width; x++ )
126 float out[] = {r[x], g[x], b[x]};
127 fa->setRGB( x, y, out );
128 fa->setAlpha( x, y, a[ x ] );
132 virtual unsigned int Flags() {
return 0;}
154 template <
class T,
int maxVersion,
int minVersion>
163 static int Activate (
int version, GlobalFunc *global, LWInstance inst,
void *serverData)
165 if ( version > maxVersion )
return AFUNC_BADVERSION;
166 if ( version < minVersion )
return AFUNC_BADVERSION;
173 LWImageFilterHandler *plugin =
static_cast<LWImageFilterHandler *
>(inst);
177 plugin->process = ImageFilterAdaptor::Process;
178 plugin->flags = ImageFilterAdaptor::Flags;
187 plugin->
process = ImageFilterAdaptor::Process;
188 plugin->
flags = ImageFilterAdaptor::Flags10;
192 catch (std::exception &e)
199 static void Process (LWInstance instance,
const LWFilterAccess *fa)
203 T *plugin = (T *) instance;
206 catch (std::exception &e)
212 static unsigned int Flags (LWInstance instance)
216 T *plugin = (T *) instance;
217 return plugin->Flags();
219 catch (std::exception &e)
225 static int *Flags10 (LWInstance instance)
229 T *plugin = (T *) instance;
230 return plugin->Flags10();
232 catch (std::exception &e)
252 #endif // LWPP_IMAGEFILTER_HANDLER_H