encapsulate context creation
I need to use the opencl context and its associated command queues across several classes and therefore i am planning to encapsulate the opencl context creation into a single class and make a singleton instance of it. That instance will be used by several other class objects in the application.
Is my plan in the right direction ?
Is it necessary to use the clRetainContext() some where here ?
As long as your class that holds the context holds it until everyone is done, then you don't need additional retain/release calls since the singleton class holds a reference count.
If you are using C++ might also investigate using the OpenCL C++ wrapper classes; they offer some convenience over the C API.