void UniformSampleGenerator2DCL::generateNextSamples(SampleBuffer& positionSamplesOut, const VECTOR_CLASS<cl::Event>* waitForEvents /*= nullptr*/, cl::Event* event /*= nullptr*/) { if (kernel_ == NULL) { return throw Exception("Invalid kernel: Kernel not found or failed to compile"); } size2_t nSamples{static_cast<size_t>(std::sqrt(static_cast<double>(positionSamplesOut.getSize())))}; if (getUseGLSharing()) { SyncCLGL glSync; BufferCLGL* samples = positionSamplesOut.getEditableRepresentation<BufferCLGL>(); // Acquire shared representations before using them in OpenGL // The SyncCLGL object will take care of synchronization between OpenGL and OpenCL glSync.addToAquireGLObjectList(samples); glSync.aquireAllObjects(); generateSamples(nSamples, positionSamplesOut.getSize(), samples, waitForEvents, event); } else { BufferCL* samples = positionSamplesOut.getEditableRepresentation<BufferCL>(); generateSamples(nSamples, positionSamplesOut.getSize(), samples, waitForEvents, event); } }