gKitGL
CLInit.h
00001 
00002 #ifndef _CL_INIT_H
00003 #define _CL_INIT_H
00004 
00005 #include <string>
00006 #include <CL/CLPlatform.h>
00007 
00008 #include "CLQueue.h"
00009 
00010 
00011 namespace gk {
00012 
00013 //! flags de configuration du contexte openCL
00014 enum 
00015 {
00016     CPU_BIT= 1, //!< openCL sur cpu.
00017     GPU_BIT= 2, //!< openCL sur gpu.
00018     GL_BIT= 4,  //!< openCL sur le gpu associe au contexte openGL actif.
00019     DEBUG_BIT= 8,       //!< compile les kernels en mode debug.
00020     PROFILE_BIT= 16     //!< configure la file de commande par defaut en mode profiling.
00021 };
00022 
00023 extern cl_platform_id ActivePlatform;
00024 inline cl_platform_id platform( )
00025 {
00026     return ActivePlatform;
00027 }
00028 
00029 extern cl_context ActiveContext;
00030 extern unsigned int ActiveContextFlags;
00031 
00032 inline cl_context context( )
00033 {
00034     return ActiveContext;
00035 }
00036 
00037 extern cl_device_id ActiveDevice;
00038 inline cl_device_id device( )
00039 {
00040     return ActiveDevice;
00041 }
00042 
00043 class CLQueue;
00044 //! renvoie la file de commande openCL par defaut.
00045 extern CLQueue *ActiveQueue;
00046 //! renvoie l'objet openCL associee a la file de commandes openCL creee par defaut.
00047 inline cl_command_queue queue( )
00048 {
00049     return ActiveQueue->queue();
00050 }
00051 
00052 extern bool Active;
00053 inline bool isCLInit( )
00054 {
00055     return Active;
00056 }
00057 
00058 //! initialise un contexte et un peripherique openCL.
00059 int CLInit( const unsigned int flags= GPU_BIT );
00060 //! ferme le contexte openCL.
00061 void CLQuit( void );
00062 
00063 extern std::string ActiveBuildOptions;
00064 //! ajoute une option de compilation commune a tous les kernels compiles.
00065 int CLBuildOptions( const std::string& options );
00066 
00067 class CLQueue;
00068 //! cree une file de commande openCL.
00069 CLQueue *createQueue( );
00070 
00071 }
00072 
00073 #endif
 All Classes Namespaces Functions Variables Typedefs Enumerator Friends