2013-03-26  Igor Oliveira  <igor.o@sisa.samsung.com>

        Implement WebCLObject
        Issue #199

        Create a new class called WebCLObject. The new class manages the
        WebCL platform objects(e.g platform object destruction).

        Reviewed by Antonio.

        * Modules/webcl/WebCLBuffer.cpp:
        (WebCore::WebCLBuffer::createSubBuffer):
        * Modules/webcl/WebCLBuffer.h:
        (WebCLBuffer):
        * Modules/webcl/WebCLCommandQueue.cpp:
        (WebCore::WebCLCommandQueue::~WebCLCommandQueue):
        (WebCore::WebCLCommandQueue::create):
        (WebCore::WebCLCommandQueue::WebCLCommandQueue):
        (WebCore::WebCLCommandQueue::getInfo):
        (WebCore::WebCLCommandQueue::enqueueWriteBufferBase):
        (WebCore::WebCLCommandQueue::enqueueWriteBufferRect):
        (WebCore::WebCLCommandQueue::enqueueReadBuffer):
        (WebCore::WebCLCommandQueue::enqueueReadImage):
        (WebCore::WebCLCommandQueue::enqueueReadBufferRect):
        (WebCore::WebCLCommandQueue::enqueueNDRangeKernel):
        (WebCore::WebCLCommandQueue::finish):
        (WebCore::WebCLCommandQueue::flush):
        (WebCore::WebCLCommandQueue::enqueueWriteImage):
        (WebCore::WebCLCommandQueue::enqueueAcquireGLObjects):
        (WebCore::WebCLCommandQueue::enqueueReleaseGLObjects):
        (WebCore::WebCLCommandQueue::enqueueCopyImage):
        (WebCore::WebCLCommandQueue::enqueueCopyImageToBuffer):
        (WebCore::WebCLCommandQueue::enqueueCopyBufferToImage):
        (WebCore::WebCLCommandQueue::enqueueCopyBuffer):
        (WebCore::WebCLCommandQueue::enqueueCopyBufferRect):
        (WebCore::WebCLCommandQueue::enqueueBarrier):
        (WebCore::WebCLCommandQueue::enqueueMarker):
        (WebCore::WebCLCommandQueue::enqueueTask):
        (WebCore::WebCLCommandQueue::releasePlatformObjectImpl):
        (WebCore):
        * Modules/webcl/WebCLCommandQueue.h:
        (WebCLCommandQueue):
        * Modules/webcl/WebCLContext.cpp:
        (WebCore::WebCLContext::~WebCLContext):
        (WebCore::WebCLContext::create):
        (WebCore::WebCLContext::WebCLContext):
        (WebCore):
        (WebCore::WebCLContext::getInfo):
        (WebCore::WebCLContext::createCommandQueue):
        (WebCore::WebCLContext::createProgram):
        (WebCore::WebCLContext::createBuffer):
        (WebCore::WebCLContext::createImage2DBase):
        (WebCore::WebCLContext::createImage):
        (WebCore::WebCLContext::createFromGLBuffer):
        (WebCore::WebCLContext::createFromGLRenderBuffer):
        (WebCore::WebCLContext::createSampler):
        (WebCore::WebCLContext::createFromGLTexture2D):
        (WebCore::WebCLContext::createUserEvent):
        (WebCore::WebCLContext::getSupportedImageFormats):
        (WebCore::WebCLContext::releasePlatformObjectImpl):
        * Modules/webcl/WebCLContext.h:
        (WebCore):
        (WebCore::WebCLContext::computeContext):
        (WebCLContext):
        * Modules/webcl/WebCLContextProperties.cpp:
        (WebCore::WebCLContextProperties::computeContextProperties):
        * Modules/webcl/WebCLDevice.cpp:
        (WebCore::WebCLDevice::WebCLDevice):
        (WebCore::WebCLDevice::getInfo):
        * Modules/webcl/WebCLDevice.h:
        (WebCLDevice):
        * Modules/webcl/WebCLImage.cpp:
        (WebCore::WebCLImage::getGLtextureInfo):
        (WebCore::WebCLImage::getInfo):
        * Modules/webcl/WebCLImage.h:
        * Modules/webcl/WebCLInputChecker.h:
        (WebCLInputChecker):
        (WebCore::WebCLInputChecker::validateWebCLObject):
        * Modules/webcl/WebCLKernel.cpp:
        (WebCore::WebCLKernel::~WebCLKernel):
        (WebCore::WebCLKernel::create):
        (WebCore::WebCLKernel::createKernelsInProgram):
        (WebCore::WebCLKernel::WebCLKernel):
        (WebCore::WebCLKernel::getInfo):
        (WebCore::WebCLKernel::getWorkGroupInfo):
        (WebCore::WebCLKernel::setArg):
        (WebCore::WebCLKernel::releasePlatformObjectImpl):
        * Modules/webcl/WebCLKernel.h:
        (WebCLKernel):
        * Modules/webcl/WebCLMemoryObject.cpp:
        (WebCore::WebCLMemoryObject::~WebCLMemoryObject):
        (WebCore::WebCLMemoryObject::WebCLMemoryObject):
        (WebCore::WebCLMemoryObject::getGLObjectInfo):
        (WebCore::WebCLMemoryObject::getInfo):
        (WebCore::WebCLMemoryObject::releasePlatformObjectImpl):
        * Modules/webcl/WebCLMemoryObject.h:
        (WebCLMemoryObject):
        * Modules/webcl/WebCLObject.h: Copied from Source/WebCore/Modules/webcl/WebCLBuffer.h.
        (WebCore):
        (WebCLObject):
        (WebCore::WebCLObject::~WebCLObject):
        (WebCore::WebCLObject::platformObject):
        (WebCore::WebCLObject::releasePlatformObject):
        (WebCore::WebCLObject::WebCLObject):
        (WebCore::WebCLObject::releasePlatformObjectImpl):
        * Modules/webcl/WebCLPlatform.cpp:
        (WebCore::WebCLPlatform::WebCLPlatform):
        (WebCore::WebCLPlatform::getInfo):
        (WebCore::WebCLPlatform::getDevices):
        * Modules/webcl/WebCLPlatform.h:
        (WebCLPlatform):
        * Modules/webcl/WebCLProgram.cpp:
        (WebCore::WebCLProgram::~WebCLProgram):
        (WebCore::WebCLProgram::WebCLProgram):
        (WebCore::WebCLProgram::getInfo):
        (WebCore::WebCLProgram::getBuildInfo):
        (WebCore::WebCLProgram::createKernel):
        (WebCore::WebCLProgram::createKernelsInProgram):
        (WebCore::WebCLProgram::build):
        (WebCore::WebCLProgram::releaseProgram):
        (WebCore::WebCLProgram::releasePlatformObjectImpl):
        (WebCore):
        * Modules/webcl/WebCLProgram.h:
        (WebCLProgram):
        * Modules/webcl/WebCLProgram.idl:
        * Modules/webcl/WebCLSampler.cpp:
        (WebCore::WebCLSampler::~WebCLSampler):
        (WebCore::WebCLSampler::WebCLSampler):
        (WebCore::WebCLSampler::getInfo):
        (WebCore::WebCLSampler::releasePlatformObjectImpl):
        * Modules/webcl/WebCLSampler.h:
        (WebCLSampler):
        * WebCore.xcodeproj/project.pbxproj:
        * platform/ComputeContext.h:
        (ComputeContext):
        (WebCore::ComputeContext::context):
        * platform/opencl/ComputeContextCL.cpp: