You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

48 lines
1020 B

#ifndef IPROCESSSTRATEGY_H
#define IPROCESSSTRATEGY_H
//#include "CL/cl2.hpp"
#include <QObject>
#include <QMetaType>
//#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