Mercurial > hg > orthanc-stone
diff Framework/Layers/OrthancFrameLayerSource.cpp @ 318:3a4ca166fafa am-2
ImageAccessor refactoring + implemented Image Cache in SmartLoader
author | am@osimis.io |
---|---|
date | Mon, 08 Oct 2018 17:10:08 +0200 |
parents | b4abaeb783b1 |
children | b10dfdb96866 |
line wrap: on
line diff
--- a/Framework/Layers/OrthancFrameLayerSource.cpp Fri Oct 05 11:57:36 2018 +0200 +++ b/Framework/Layers/OrthancFrameLayerSource.cpp Mon Oct 08 17:10:08 2018 +0200 @@ -51,9 +51,17 @@ void OrthancFrameLayerSource::OnSliceImageReady(const OrthancSlicesLoader::SliceImageReadyMessage& message) { + // first notify that the image is ready (targeted to, i.e: an image cache) + LayerSourceBase::NotifyImageReady(message.image_, message.effectiveQuality_, message.slice_); + + // then notify that the layer is ready for render bool isFull = (message.effectiveQuality_ == SliceImageQuality_FullPng || message.effectiveQuality_ == SliceImageQuality_FullPam); - LayerSourceBase::NotifyLayerReady(FrameRenderer::CreateRenderer(message.image_.release(), message.slice_, isFull), + std::auto_ptr<Orthanc::ImageAccessor> accessor(new Orthanc::ImageAccessor()); + message.image_->GetReadOnlyAccessor(*accessor); + + LayerSourceBase::NotifyLayerReady(FrameRenderer::CreateRenderer(accessor.release(), message.slice_, isFull), message.slice_.GetGeometry(), false); + } void OrthancFrameLayerSource::OnSliceImageError(const OrthancSlicesLoader::SliceImageErrorMessage& message)