gKitGL
CLQueue.h
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
 All Classes Namespaces Functions Variables Typedefs Enumerator Friends