Example #1
0
    CL::Event OGLSharedFramebuffer::release(CL::CommandQueue& queue, const CL::Event& evt)
    {
        if (_shared) {
            CL::Event e = queue.enq_GL_release(_cl_buffer->get(),
                                               "release framebuffer", evt);
            return e;
        } else {

            assert(_local);
            CL::Event e = queue.enq_read_buffer(*_cl_buffer, _local, _tex_buffer.get_size(),
                                                "read framebuffer", evt);
            queue.wait_for_events(e);

            _tex_buffer.load(_local);
            return CL::Event();
        }
    }