gKitGL
|
00001 00002 #ifndef _CL_QUEUE_H 00003 #define _CL_QUEUE_H 00004 00005 #include <cstdio> 00006 #include <CL/CLPlatform.h> 00007 00008 #include "CLResource.h" 00009 00010 00011 namespace gk { 00012 00013 class CLKernel; 00014 00015 class CLQueue : public CLResource 00016 { 00017 cl_command_queue m_queue; 00018 00019 public: 00020 CLQueue( const cl_command_queue_properties flags= 0 ); 00021 ~CLQueue( ); 00022 00023 int createCLResource( ); 00024 int releaseCLResource( ); 00025 00026 const cl_command_queue *object( ) const 00027 { 00028 return &m_queue; 00029 } 00030 00031 cl_command_queue *object( ) 00032 { 00033 return &m_queue; 00034 } 00035 00036 cl_command_queue queue( ) const 00037 { 00038 return m_queue; 00039 } 00040 00041 int dispatch( CLKernel *kernel, const size_t global_size, const size_t group_size, cl_event *wait= NULL ); 00042 int dispatch2D( CLKernel *kernel, const size_t global_width, const size_t global_height, const size_t group_width, const size_t group_height, cl_event *wait= NULL ); 00043 int dispatch3D( CLKernel *kernel, cl_event *wait= NULL ); 00044 }; 00045 00046 } // namespace gk 00047 00048 #endif