livoxGen1: Add OpenClSplittingEngine
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
#ifndef _LIVOX_GEN1_OPENCL_SPLITTING_ENGINE_H
|
||||
#define _LIVOX_GEN1_OPENCL_SPLITTING_ENGINE_H
|
||||
|
||||
#include <cstdint>
|
||||
#include <cstddef>
|
||||
#include <memory>
|
||||
#include <CL/cl.h>
|
||||
|
||||
namespace smo {
|
||||
namespace stim_buff {
|
||||
|
||||
class PcloudStimulusBuffer;
|
||||
|
||||
class OpenClSplittingEngine
|
||||
{
|
||||
public:
|
||||
explicit OpenClSplittingEngine(PcloudStimulusBuffer& parent);
|
||||
~OpenClSplittingEngine();
|
||||
|
||||
// Non-copyable, movable
|
||||
OpenClSplittingEngine(const OpenClSplittingEngine&) = delete;
|
||||
OpenClSplittingEngine& operator=(const OpenClSplittingEngine&) = delete;
|
||||
OpenClSplittingEngine(OpenClSplittingEngine&&) = default;
|
||||
OpenClSplittingEngine& operator=(OpenClSplittingEngine&&) = default;
|
||||
|
||||
bool setup();
|
||||
void finalize();
|
||||
|
||||
private:
|
||||
PcloudStimulusBuffer& parent;
|
||||
|
||||
// OpenCL infrastructure
|
||||
cl_platform_id platform;
|
||||
cl_device_id device;
|
||||
cl_context context;
|
||||
cl_command_queue commandQueue;
|
||||
cl_program program;
|
||||
cl_kernel kernel;
|
||||
bool isSetup;
|
||||
|
||||
// OpenCL buffers
|
||||
cl_mem assemblyBuffer;
|
||||
cl_mem xyzBuffer;
|
||||
cl_mem intensityBuffer;
|
||||
};
|
||||
|
||||
} // namespace stim_buff
|
||||
} // namespace smo
|
||||
|
||||
#endif // _LIVOX_GEN1_OPENCL_SPLITTING_ENGINE_H
|
||||
Reference in New Issue
Block a user