ClearVolume / clearvolume

ClearVolume is a real-time live 3D visualization library designed for high-end volumetric microscopes such as SPIM and DLSM microscopes. With ClearVolume you can see live on your screen the stacks acquired by your microscope instead of waiting for offline post-processing to give you an intuitive and comprehensive view on your data.
http://clearvolume.github.io
GNU Lesser General Public License v3.0
43 stars 11 forks source link

Generating image from discontinuous areas in memory is broken #62

Closed nicost closed 6 years ago

nicost commented 7 years ago

Whereas this worked about a year ago, currently the function clearvolume.rendered.opencl.OpenClVolumeRenderer.fillWithByteBuffer(ClearCLImage, FragmentedMemoryInterface) throws an UnsupportedOperationException. This breaks the Micro-Manager ClearVolume viewer.

Was there a fundamental reason that this functionality was removed? Is there anything against restoring the old code (i.e. the function OpenClDevice.writeImagePerPlane(CLImage3D, FragmentedMemoryInterface)? I guess that I can copy the data in memory myself before sending it to clearvolume, but that involves an extra copying step (which is a bit of a shame).

Edit: I just tested performance with the old version versus manually assembling a ContiguousMemory. Performance dropeed significantly, which is quite a shame since that is what makes ClearVolume nice to use.

Edit 2. It looks like this was a simple instance of a few lines of code not added during refactoring. Please check PR #63.