comparison 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
comparison
equal deleted inserted replaced
317:b66d13708f40 318:3a4ca166fafa
49 LayerSourceBase::NotifyGeometryError(); 49 LayerSourceBase::NotifyGeometryError();
50 } 50 }
51 51
52 void OrthancFrameLayerSource::OnSliceImageReady(const OrthancSlicesLoader::SliceImageReadyMessage& message) 52 void OrthancFrameLayerSource::OnSliceImageReady(const OrthancSlicesLoader::SliceImageReadyMessage& message)
53 { 53 {
54 // first notify that the image is ready (targeted to, i.e: an image cache)
55 LayerSourceBase::NotifyImageReady(message.image_, message.effectiveQuality_, message.slice_);
56
57 // then notify that the layer is ready for render
54 bool isFull = (message.effectiveQuality_ == SliceImageQuality_FullPng || message.effectiveQuality_ == SliceImageQuality_FullPam); 58 bool isFull = (message.effectiveQuality_ == SliceImageQuality_FullPng || message.effectiveQuality_ == SliceImageQuality_FullPam);
55 LayerSourceBase::NotifyLayerReady(FrameRenderer::CreateRenderer(message.image_.release(), message.slice_, isFull), 59 std::auto_ptr<Orthanc::ImageAccessor> accessor(new Orthanc::ImageAccessor());
60 message.image_->GetReadOnlyAccessor(*accessor);
61
62 LayerSourceBase::NotifyLayerReady(FrameRenderer::CreateRenderer(accessor.release(), message.slice_, isFull),
56 message.slice_.GetGeometry(), false); 63 message.slice_.GetGeometry(), false);
64
57 } 65 }
58 66
59 void OrthancFrameLayerSource::OnSliceImageError(const OrthancSlicesLoader::SliceImageErrorMessage& message) 67 void OrthancFrameLayerSource::OnSliceImageError(const OrthancSlicesLoader::SliceImageErrorMessage& message)
60 { 68 {
61 LayerSourceBase::NotifyLayerReady(NULL, message.slice_.GetGeometry(), true); 69 LayerSourceBase::NotifyLayerReady(NULL, message.slice_.GetGeometry(), true);