2013-04-24  Igor Oliveira  <igor.o@sisa.samsung.com>

        Patch 1: Refactor WebCLEvent
        Issue #216

        This patch implements WebCLEvent following the WebCL spec and the
        WebKit WebCL architecture. WebCLEvent is different of others WebCL objects,
        it has a constructor and initially the platform object is invalid, however the
        class is valid object.

        Reviewed by Antonio Gomes.

        * Modules/webcl/WebCL.cpp:
        (WebCore::WebCL::waitForEvents):
        * Modules/webcl/WebCLCommandQueue.cpp:
        (WebCore::WebCLCommandQueue::enqueueWriteBufferBase):
        (WebCore::WebCLCommandQueue::enqueueWriteBufferRect):
        (WebCore::WebCLCommandQueue::enqueueReadBuffer):
        (WebCore::WebCLCommandQueue::enqueueReadImage):
        (WebCore::WebCLCommandQueue::enqueueReadBufferRect):
        (WebCore::WebCLCommandQueue::enqueueNDRangeKernel):
        (WebCore::WebCLCommandQueue::enqueueWriteImage):
        (WebCore::WebCLCommandQueue::enqueueCopyImage):
        (WebCore::WebCLCommandQueue::enqueueCopyImageToBuffer):
        (WebCore::WebCLCommandQueue::enqueueCopyBufferToImage):
        (WebCore::WebCLCommandQueue::enqueueCopyBuffer):
        (WebCore::WebCLCommandQueue::enqueueCopyBufferRect):
        (WebCore::WebCLCommandQueue::enqueueMarker):
        (WebCore::WebCLCommandQueue::enqueueTask):
        * Modules/webcl/WebCLCommandQueue.h:
        (WebCLCommandQueue):
        * Modules/webcl/WebCLContext.cpp:
        (WebCore::WebCLContext::createUserEvent):

        WebCLUserEvent will be implemented later.

        * Modules/webcl/WebCLEvent.cpp:
        (WebCore::WebCLEvent::~WebCLEvent):
        (WebCore::WebCLEvent::create):
        (WebCore::WebCLEvent::WebCLEvent):
        (WebCore::WebCLEvent::getInfo):
        (WebCore::WebCLEvent::getProfilingInfo):
        (WebCore::WebCLEvent::setAssociatedCommandQueue):
        (WebCore::WebCLEvent::releasePlatformObjectImpl):
        * Modules/webcl/WebCLEvent.h:
        (WebCLEvent):
        * Modules/webcl/WebCLEvent.idl:
        * Modules/webcl/WebCLGLCommandQueue.cpp:
        (WebCore::WebCLGLCommandQueue::enqueueAcquireGLObjects):
        (WebCore::WebCLGLCommandQueue::enqueueReleaseGLObjects):
        * Modules/webcl/WebCLObject.h:
        (WebCLObject):
        (WebCore::WebCLObject::WebCLObject): Creates a new constructor.
        WebCLEvent initially does not have a valid platform object.