#ifndef IPROCESSSTRATEGY_H #define IPROCESSSTRATEGY_H //#include "CL/cl2.hpp" #include #include //#include "Processor.h" #include "utils/OpenCLHelper.h" #include "ScenarioParams.h" #ifdef USE_DBL typedef double myflt; #else typedef float myflt; #endif using namespace cl; class IProcessStrategy : public QObject { Q_OBJECT public: virtual void cpuProcess(ScenGenOutput_t parameters) = 0; virtual void finalize() = 0; virtual Image* processKernel(Image* inputFrame, Buffer* scrathPad) = 0; private: // Context _CLContext; // Device getDefaultDevice(const Context& context); protected: Kernel _kernel; IProcessStrategy(const Context context, const QString kernelPath, const QString kernelName, const QObject* parent); Context _CLContext; Device getDefaultDevice(const Context& context); const QObject* _parent; OpenCLHelper _openCLHelper; }; //Q_DECLARE_METATYPE(IProcessStrategy*); #endif // IPROCESSSTRATEGY_H